R 动态调整大小的侧栏面板和主面板

R 动态调整大小的侧栏面板和主面板,r,shiny,R,Shiny,我正在尝试创建一个闪亮的应用程序,它在侧边栏面板中动态生成UI输入选项,并在主面板中生成绘图。在实际代码中,sidebarPanel和mainPanel比大多数显示器所允许的要长得多。因此,我希望它们在顶部显示标题板时独立滚动 下面是一个最小的可复制示例。我已经手动定义了925像素的最大高度。这对于1080p的浏览器来说效果很好,但在1440p的显示器上,它看起来有点傻,因为max height参数使侧边栏仍然以925px的速度滚动。如果我设置最大高度:100%,溢出根本不起作用,只有主页滚动。

我正在尝试创建一个闪亮的应用程序,它在侧边栏面板中动态生成UI输入选项,并在主面板中生成绘图。在实际代码中,sidebarPanel和mainPanel比大多数显示器所允许的要长得多。因此,我希望它们在顶部显示标题板时独立滚动

下面是一个最小的可复制示例。我已经手动定义了925像素的最大高度。这对于1080p的浏览器来说效果很好,但在1440p的显示器上,它看起来有点傻,因为max height参数使侧边栏仍然以925px的速度滚动。如果我设置最大高度:100%,溢出根本不起作用,只有主页滚动。如何独立滚动侧边栏面板和主面板,并根据浏览器窗口动态调整大小

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)
从你的想法代码可以调整,以实现两个面板的独立滚动

致以最良好的祝愿, 利亚


谢谢我显然对CSS不太熟悉。我以前没见过vh单位,这正是我需要的。
ui = fluidPage (
  titlePanel("Test Server"),
  sidebarLayout(position = "right",
                sidebarPanel(
                  width = 2,
                  style = paste0("height: 90vh; overflow-y: auto;"), ##CHANGE
                  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("height: 90vh; overflow-y: auto;"),##CHANGE
                  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)