如何让Shiny中selectInput选项突破wellPanel边界,提升可见性?
解决Shiny中wellPanel遮挡selectInput下拉选项的问题
要解决wellPanel横向滚动时遮挡selectInput下拉选项的问题,只需调整wellPanel的CSS样式,让垂直方向不裁剪内容,同时保留横向滚动功能,具体修改如下:
library(shiny) ui <- fluidPage( br(), br(), wellPanel( # 添加样式避免裁剪下拉菜单,同时保留横向滚动 style = "overflow-x: scroll; overflow-y: visible; position: static;", splitLayout( column( 12, selectInput("i1", "I1", c("Boy","Cat","Dog","Rat","Bat")) ), column( 12, selectInput("i2", "I2", c("Boy","Cat","Dog","Rat","Bat")) ), column( 12, selectInput("i3", "I3", c("Boy","Cat","Dog","Rat","Bat")) ), cellWidths = "40%" ) ) ) server <- function(input, output) {} shinyApp(ui, server)
原理说明
overflow-y: visible:取消wellPanel对垂直方向内容的裁剪,让selectInput的下拉菜单可以延伸到面板下方。position: static:取消wellPanel默认的相对定位,避免下拉菜单被限制在面板的定位范围内。- 保留
overflow-x: scroll,维持横向滚动功能,且面板在未展开下拉菜单时的尺寸不会改变。
如果右侧selectInput的下拉选项仍有显示异常,可额外添加自定义CSS提升下拉菜单的层级:
ui <- fluidPage( tags$head( tags$style(HTML(" .selectize-dropdown { z-index: 9999 !important; } ")) ), br(), br(), wellPanel( style = "overflow-x: scroll; overflow-y: visible; position: static;", splitLayout( # 原布局内容不变 ) ) )
内容的提问来源于stack exchange,提问作者Village.Idyot
相关产品推荐
相关产品推荐

