r - Shiny 中动态调整大小的侧边栏面板和主面板
问题描述
我正在尝试创建一个 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)
解决方案
从这里采取的想法您的代码可以调整以实现两个面板的独立滚动!
最好的问候,莉亚
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)
推荐阅读
- javascript - 我该如何解决这个问题:未捕获的类型错误:无法读取 javascript 中未定义的属性“toString”
- swift - 在列表中的部分之间移动项目时的 SwiftUI 奇怪行为
- elasticsearch - Elasticsearch:是否可以通过嵌套字段对折叠的结果进行排序?
- php - 如何在嵌套集中使用 MySQL 和 Laravel 提高查询性能
- angular - 前端和后端服务器(托管在不同的 aws 实例上)无法通信
- javascript - 在数组对象中过滤搜索,在选定的键中
- python - ImportError:无法导入名称“utils”
- javascript - 在 Javascript 循环中创建新数组
- python - 如何在每个索引处找到 3 个或更多数组的最大值
- spring - 在从数据库获取的多个不同日期时间运行计划作业