当标题被禁用时,Shinydashboard会删除额外的空间

时间:2016-09-28 19:38:21

标签: r shiny shinydashboard

可以在此answer

中找到整个代码/文件
UI.R file
library(shiny)
library(shinydashboard)
shinyUI( 
  dashboardPage(
    dashboardHeader(disable = TRUE), #title=textOutput("title")),
    dashboardSidebar(uiOutput("side")),
    dashboardBody(
          uiOutput("page")
    )))

但是,我想要在我的信息中心中禁用标题,在here的帮助下我设法禁用但是我的信息中心中添加了一些空白区域。 (见图片,橙色高亮的盒子)。

我怎样摆脱这个?这不仅在登录页面上,即使登录后问题仍然存在。 enter image description here

2 个答案:

答案 0 :(得分:4)

我认为它是闪亮仪表板上缺少的功能,可以自动向主体添加标题的高度。我使用JavaScript修复了它。该解决方案基于在创建页面后添加50px到body的CSS min-height属性。如果窗口大小发生变化,我还添加了一个事件监听器来添加50px。

library(shiny)
library(shinydashboard)

server <- function(input, output) {
}
ui <- dashboardPage(
  dashboardHeader(disable = TRUE),
  dashboardSidebar(),
  dashboardBody(
    tags$script('window.onload = function() {
      function fixBodyHeight() {
        var el = $(document.getElementsByClassName("content-wrapper")[0]);
        var h = el.height();
        el.css("min-height", h + 50 + "px");
      };
      window.addEventListener("resize", fixBodyHeight);
      fixBodyHeight();
    };')
  )
)

shinyApp(ui, server)

答案 1 :(得分:1)

您可以添加类,然后从服务器端删除它

(隐藏头的想法得到here

library(shiny)
library(shinyjs)
library(shinydashboard)
server=shinyServer(
  function(input, output,session) {
    observeEvent(input$activate,{
      js$hidehead('')  # show head
      removeClass("body_d","DISABLED") # remove class
    })
  })


ui=
shinyUI( 
  dashboardPage(
    dashboardHeader(disable = T), #title=textOutput("title")),
    dashboardSidebar(uiOutput("side")),
    dashboardBody(class="DISABLED",id="body_d",
                  useShinyjs(),
                  extendShinyjs(text = "shinyjs.hidehead = function(parm){
                                    $('header').css('display', parm);
                                }"),
      tags$style(".DISABLED { min-height: 100vh !important};
                 "),
      actionButton("activate","activate header")
    )))

shinyApp(ui,server)

如果您不希望在某些内容后显示标题 - 您只需添加类并添加css min-height: 100vh !important作为示例