我希望滚动光标只在tabPanel之后开始.这样,向下滚动时,选项卡面板始终可见.这将在页面顶部创建一种横幅.下面是一个可重复使用的例子:

library("shiny")

txt <- paste(sapply(seq_len(100), function(x){
  p <- shiny::tags$p(stringi::stri_rand_lipsum(1))
  return(as.character(p))
}), collapse = "")


ui = navbarPage(title = "Navbar example", 
                position = c("fixed-top"),
                
                id = "navbar",
                tags$br(),
                tags$br(),
                tags$br(),
                tags$br(),
                tabPanel(title = "tab 1", 
                         tabsetPanel(id = "id1",
                                     tabPanel(title = "A",
                                              HTML(txt),
                                     ),
                                     tabPanel(title = "B",
                                              HTML(txt),
                                     )
                         )),
                tabPanel(title = "tab 2", 
                         tabsetPanel(id = "id2",
                                     tabPanel(title = "C",
                                              HTML(txt),
                                     ),
                                     tabPanel(title = "D",
                                     ),
                                     tabPanel(title = "E",
                                              HTML(txt),
                                     )
                         ))
)

server = shinyServer(function(input, output) {
})


shinyApp(ui, server)

下面是一张图片,以便更好地理解.

n

推荐答案

你可以用

.tabbable .tab-content {
    height: calc(100vh - 122px);
    overflow-y: auto;
}

这将导致:

enter image description here

library(shiny)

txt <- paste(sapply(seq_len(100), function(x){
    p <- shiny::tags$p(stringi::stri_rand_lipsum(1))
    return(as.character(p))
}), collapse = "")


ui = navbarPage(tags$head(tags$style(HTML("
                              .tabbable .tab-content {
                                height: calc(100vh - 122px);
                                overflow-y: auto;
                              }
                              "))),
    title = "Navbar example", 
                position = c("fixed-top"),
                
                id = "navbar",
                tags$br(),
                tags$br(),
                tags$br(),
                tags$br(),
                tabPanel(title = "tab 1", 
                         tabsetPanel(id = "id1",
                                     tabPanel(title = "A",
                                              HTML(txt),
                                     ),
                                     tabPanel(title = "B",
                                              HTML(txt),
                                     )
                         )),
                tabPanel(title = "tab 2", 
                         tabsetPanel(id = "id2",
                                     tabPanel(title = "C",
                                              HTML(txt),
                                     ),
                                     tabPanel(title = "D",
                                     ),
                                     tabPanel(title = "E",
                                              HTML(txt),
                                     )
                         ))
)

server = shinyServer(function(input, output) {
})


shinyApp(ui, server)

Css相关问答推荐

在菜单中最后一项之后排除MUI分隔符

如何在元素上打孔才能看到下面的背景图像?

为什么在RadixUi上应用Tailwincss和自定义css类不起作用?

使用SVG以竖排书写模式创建渐变文本时,文本显示异常

如何向 Highcharts 迷你图添加具有淡入淡出效果的线性渐变?

使用CSS Grid是否可以跳过下一列?

在网格中整齐地对齐项目

2 列 UL,右列中的列表项数量为奇数?

条件宽度和省略号不适用于样式化组件 - React.js

如何为柔和的配色方案提供易于使用的高对比度替代方案?

从 Angular SCSS 生成 CSS?

使用 MUI 动态绘制多个边框

弹簧靴.一个文件捕获 CSS 其他没有

我应该在 HTML 中为我的 IMG 指定高度和宽度属性吗?

ID 在整个页面中必须是唯一的吗?

CSS设置宽度以填充剩余区域的百分比

Angular 动画的目的是什么?

在 CSS 中表示 100% 的 1/3 的最佳方式是什么?

使用 CSS 更改
高度

如何重置或覆盖 IE CSS 过滤器?