首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Shinydashboard:折叠main-header-title和侧边栏

问Shinydashboard:折叠main-header-title和侧边栏
EN

Stack Overflow用户
提问于 2020-04-08 18:12:29
回答 1查看 859关注 0票数 1

我目前正在开发一个带有R包shinydashboard (基于AdminLTE)的仪表板。我想通过按下切换按钮(3) as seen here来切换主标题标题(2)和侧边栏(1)。

请看下面的最小代码片段来举例说明我正在谈论的内容。

代码语言:javascript
复制
library(shiny)
library(shinydashboard)

ui <- dashboardPage(
  dashboardHeader(title = "Toggle this!"),
  dashboardSidebar(),
  dashboardBody()
)

server <- function(input, output) { }

shinyApp(ui, server)

任何帮助都是非常感谢的。如果你知道如何通过编辑底层的HTML来解决这个问题,那也是非常受欢迎的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-09 04:22:28

shinydashboardPlus允许您部分折叠侧边栏和页眉。只需将dashboardPage更改为dashboardPagePlus,将dashboardHeader更改为dashboardHeaderPlus。保留所有内容不变,您也可以折叠标题。

代码语言:javascript
复制
library(shiny)
library(shinydashboard)
library(shinydashboardPlus)

ui <- dashboardPagePlus(
  dashboardHeaderPlus(title = "Toggle this!"),
  dashboardSidebar(),
  dashboardBody()
)

server <- function(input, output) { }

shinyApp(ui, server)

但是,它不会完全折叠页眉和侧边栏。它留下了一些空间来显示图标,这是很有用的。但是,如果您想完全折叠标题和侧边栏,则需要使用JavaScript。Sidenote:dashboardPagePlus有一个参数collapse_sidebar,当设置为TRUE时,它将完全折叠侧边栏,但是标题会留在原处。要完全移动这两个组件,请使用以下代码。

代码语言:javascript
复制
library(shiny)
library(shinydashboard)
library(shinydashboardPlus)


jscode <- HTML("
$(document).on('shiny:connected', function(event) {
  $('.sidebar-toggle').on('click', function() {
    if ($('body')[0].className != 'skin-blue sidebar-mini sidebar-collapse') {
      $('#sidebarCollapsed').css('display', 'none')
      $('nav.navbar-static-top').css('width', '1800px')
      $('nav.navbar-static-top').css('margin-left', '0px')
      $('header.main-header').css('width', '1800px')
      $('.sidebar-toggle').css('position', 'relative')
      $('span.logo').css('display', 'none')
    } else {
      $('#sidebarCollapsed').css('display', 'block')
      $('nav.navbar-static-top').css('margin-left', '230px')
      $('header.main-header').css('width', '884.44px')
      $('nav.navbar-static-top').css('width', '1800.44px')
      $('span.logo').css('display', 'block')
    }
  })
});
")

csscode <- HTML("
.sidebar-mini.sidebar-collapse .content-wrapper {
      margin-left: 0px !important;
}")



ui <- dashboardPagePlus(
  dashboardHeaderPlus(title = "Toggle this!"),
  dashboardSidebar(collapsed = TRUE,
                   tags$head(tags$script(jscode)),
                   tags$head(tags$style(csscode))                   
                   ),
  dashboardBody()
)

server <- function(input, output) { }

shinyApp(ui, server)

​

​

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61098233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档