【发布时间】:2021-06-09 10:25:16
【问题描述】:
我正在尝试创建一个 Shiny 应用程序,它在 sidebarPanel 中动态生成 UI 输入选项,在 mainPanel 中生成绘图。在实际代码中,sidebarPanel 和 mainPanel 比大多数显示器允许的要长得多。因此,我希望它们在顶部显示 titlePanel 时独立滚动。
下面是一个最小的可重现示例。我手动将最大高度定义为 925 像素。这适用于 1080p 的浏览器,但在 1440p 显示器上它看起来有点傻,因为 max-height 参数使侧边栏仍以 925px 滚动。如果我设置 max-height: 100%,溢出根本不起作用,只有主页滚动。如何获得独立滚动的 sidebarPanel 和 mainPanel 并根据浏览器窗口动态调整大小?
ui = fluidPage (
titlePanel("Test Server"),
sidebarLayout(position = "right",
sidebarPanel(
width = 2,
style = paste0("overflow-y: scroll;
max-height: 925px;"),
tags$html(tags$h1("This")),tags$html(tags$h1("is")),tags$html(tags$h1("dummy")),tags$html(tags$h1("content")),tags$html(tags$h1("to")),tags$html(tags$h1("force")),tags$html(tags$h1("the")),tags$html(tags$h1("page")),tags$html(tags$h1("to")),tags$html(tags$h1("scroll")),
tags$html(tags$h1("This")),tags$html(tags$h1("is")),tags$html(tags$h1("dummy")),tags$html(tags$h1("content")),tags$html(tags$h1("to")),tags$html(tags$h1("force")),tags$html(tags$h1("the")),tags$html(tags$h1("page")),tags$html(tags$h1("to")),tags$html(tags$h1("scroll")),
),
mainPanel(
width = 10,
style = paste0("overflow-y: scroll;
max-height: 925px;"),
tags$html(tags$h1("This")),tags$html(tags$h1("is")),tags$html(tags$h1("dummy")),tags$html(tags$h1("content")),tags$html(tags$h1("to")),tags$html(tags$h1("force")),tags$html(tags$h1("the")),tags$html(tags$h1("page")),tags$html(tags$h1("to")),tags$html(tags$h1("scroll")),
tags$html(tags$h1("This")),tags$html(tags$h1("is")),tags$html(tags$h1("dummy")),tags$html(tags$h1("content")),tags$html(tags$h1("to")),tags$html(tags$h1("force")),tags$html(tags$h1("the")),tags$html(tags$h1("page")),tags$html(tags$h1("to")),tags$html(tags$h1("scroll")),
)
)
)
server = function(input, output) {
}
shinyApp(ui = ui, server = server)
【问题讨论】: