Javascript 使用滚动条时边栏面板剪裁的下拉列表

Javascript 使用滚动条时边栏面板剪裁的下拉列表,javascript,css,r,twitter-bootstrap-3,shiny,Javascript,Css,R,Twitter Bootstrap 3,Shiny,我在一个闪亮的应用程序中使用一个滚动条作为侧边栏,只需借助cssheight:90vh;溢出y:自动。如果我在侧边栏中使用shinyWidgets::dropdown,就会出现问题:如果下拉面板比侧边栏面板大,则它会被侧边栏面板剪切(请参阅随附的gif) 也许我有一个JavaScript解决方案,但不是一个简单的解决方案,我正在与一些不熟悉JavaScript的同事合作,他们不喜欢我使用JavaScript(这使应用程序的维护变得复杂)。有CSS解决方案吗?还是一个简单的JavaScript解决

我在一个闪亮的应用程序中使用一个滚动条作为侧边栏,只需借助css
height:90vh;溢出y:自动。如果我在侧边栏中使用
shinyWidgets::dropdown
,就会出现问题:如果下拉面板比侧边栏面板大,则它会被侧边栏面板剪切(请参阅随附的gif)

也许我有一个JavaScript解决方案,但不是一个简单的解决方案,我正在与一些不熟悉JavaScript的同事合作,他们不喜欢我使用JavaScript(这使应用程序的维护变得复杂)。有CSS解决方案吗?还是一个简单的JavaScript解决方案

library(shiny)
library(shinyWidgets)

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      style = "height: 90vh; overflow-y: auto;", 
      sliderInput("bins", "Number of bins:", min = 1, max = 50, value = 30),
      br(),
      dropdown(
        tags$h1("A very large dropdown"),
        label = "Open me!",
        width = "500px"
      ),
      sliderInput("bins2", "Number of bins:", min = 1, max = 50, value = 30),
      br(),
      sliderInput("bins3", "Number of bins:", min = 1, max = 50, value = 30),
      br(),
      sliderInput("bins4", "Number of bins:", min = 1, max = 50, value = 30),
      br(),
      sliderInput("bins5", "Number of bins:", min = 1, max = 50, value = 30),
      br(),
      sliderInput("bins6", "Number of bins:", min = 1, max = 50, value = 30),
      br(),
      sliderInput("bins7", "Number of bins:", min = 1, max = 50, value = 30),
      br(),
      sliderInput("bins8", "Number of bins:", min = 1, max = 50, value = 30),
      br(),
      sliderInput("bins9", "Number of bins:", min = 1, max = 50, value = 30),
      br(),
      sliderInput("bins10", "Number of bins:", min = 1, max = 50, value = 30),
      br(),
      sliderInput("bins11", "Number of bins:", min = 1, max = 50, value = 30),
      br(),
      sliderInput("bins12", "Number of bins:", min = 1, max = 50, value = 30),
      br(),
      sliderInput("bins13", "Number of bins:", min = 1, max = 50, value = 30),
      br(),
      sliderInput("bins14", "Number of bins:", min = 1, max = 50, value = 30),
      br(),
      sliderInput("bins15", "Number of bins:", min = 1, max = 50, value = 30),
      br(),
      sliderInput("bins16", "Number of bins:", min = 1, max = 50, value = 30)
    ),

    mainPanel(
      plotOutput("distPlot")
    )
  )
)


server <- function(input, output) {
  output$distPlot <- renderPlot({
    x    <- faithful[, 2] 
    bins <- seq(min(x), max(x), length.out = input$bins + 1)
    hist(x, breaks = bins, col = 'darkgray', border = 'white')
  })
}

shinyApp(ui = ui, server = server)
库(闪亮)
图书馆(shinyWidgets)

ui是否可以为“非常大的下拉列表”设置固定宽度?
js <- '
$(document).ready(function(){
  $("[id^=sw-content-]").on("shown", function(){
    $(".sidebar").css({"overflow-y": "visible"});
  }).on("hidden", function(){
    $(".sidebar").css({"overflow-y": "auto"});
  });
});
'
ui <- fluidPage(
  tags$head(tags$script(js)),
  sidebarLayout(
    sidebarPanel(
      class = "sidebar",
      style = "height: 90vh; overflow-y: auto;", 
      .......