如何实现Shiny应用启动时侧边栏默认折叠
Shiny侧边栏默认折叠实现方案
完全可以实现,仅需在现有代码基础上做极小改动,不需要重构已写好的侧边栏切换逻辑。
核心调整点:
- 保留原有点击按钮切换侧边栏显隐的功能,不需要改动这部分代码
- 在server端新增应用初始化触发逻辑:应用启动时自动执行一次侧边栏隐藏操作,让页面加载完成后侧边栏直接处于折叠状态
修改后的完整可运行代码:
library(shiny) library(shinyjs) ui <- fluidPage( useShinyjs(), navbarPage("", tabPanel("tab", div( id ="Sidebar",sidebarPanel( # 侧边栏业务内容可正常在此处添加 )), mainPanel(actionButton("toggleSidebar", "Toggle sidebar") ) ) ) ) server <-function(input, output, session) { # 应用启动时默认折叠侧边栏 hide(id = "Sidebar", anim = TRUE) # 原有按钮切换显隐逻辑保持不变 observeEvent(input$toggleSidebar, { shinyjs::toggle(id = "Sidebar", anim = TRUE) }) } shinyApp(ui, server)
小提示:代码里给
hide和toggle都加了anim = TRUE参数,实现侧边栏折叠/展开的平滑过渡效果,同时能避免页面加载时侧边栏先展开再突然折叠的闪烁问题,如果不需要动画直接删掉这个参数即可。
内容的提问来源于stack exchange,提问作者manu p
相关产品推荐
相关产品推荐

