在 Shiny 中,避免 selectInput 下拉菜单与其下方的操作按钮重叠
In Shiny, avoid overlap of selectInput dropdown with action button underneath it
这看起来是个很简单的问题,但是我搜了又搜!
我正在使用 selectize select 从 select 输入下拉菜单中的列表中选择多个项目。在它下面我有一个提交按钮来对列表执行一些操作。当您添加多个条目时,select 输入框会变大,按钮会动态地向下移动侧边栏,但是当您打开下拉菜单以查看选项列表时,提交按钮会隐藏。我希望按钮在您打开下拉菜单时动态地跳下并保持可见,相反地在它关闭时跳回。
我不能为了我的生活...
我知道如何使用 css 更改下拉菜单的默认大小
.selectize-dropdown-content { max-height: ... },
我可以添加一个 spacer 以保持提交按钮始终可见,但是一旦你完成 selecting 项目就浪费了 space。
附上示例代码
library(shiny)
library(shinydashboard)
# long entries that will increase number of lines in the selectInput box
nonsenseWords <- c(replicate(25,paste0(sample(letters, 10, replace=TRUE),collapse="")))
ui <-
dashboardPage(
dashboardHeader(),
dashboardSidebar(
fluidRow(style = "margin: 1%",
selectInput("tall_list",
"Stop covering my buttons!",
nonsenseWords,
multiple = TRUE,
selected=nonsenseWords[c(1,5,7,11,20)]
)
# The line below puts static space between the dropdown and the submit button -- this is what I want to remove
# ,tags$div(style = "height: 16em;")
)
,fluidRow(style = "margin: 1%",
actionButton("submit", "Submit")
)
),
dashboardBody(
dataTableOutput("choice")
)
)
server <- function(input, output, session) {
output$choice <- renderDataTable({
req(input$submit)
return(data.frame("Chosen Words" = c(input$tall_list)))
})
}
shinyApp(ui, server)
使用这个CSS:
dashboardBody(
tags$head(
tags$style(".selectize-dropdown {position: static}")
),
dataTableOutput("choice")
)
这看起来是个很简单的问题,但是我搜了又搜!
我正在使用 selectize select 从 select 输入下拉菜单中的列表中选择多个项目。在它下面我有一个提交按钮来对列表执行一些操作。当您添加多个条目时,select 输入框会变大,按钮会动态地向下移动侧边栏,但是当您打开下拉菜单以查看选项列表时,提交按钮会隐藏。我希望按钮在您打开下拉菜单时动态地跳下并保持可见,相反地在它关闭时跳回。
我不能为了我的生活...
我知道如何使用 css 更改下拉菜单的默认大小 .selectize-dropdown-content { max-height: ... }, 我可以添加一个 spacer 以保持提交按钮始终可见,但是一旦你完成 selecting 项目就浪费了 space。
附上示例代码
library(shiny)
library(shinydashboard)
# long entries that will increase number of lines in the selectInput box
nonsenseWords <- c(replicate(25,paste0(sample(letters, 10, replace=TRUE),collapse="")))
ui <-
dashboardPage(
dashboardHeader(),
dashboardSidebar(
fluidRow(style = "margin: 1%",
selectInput("tall_list",
"Stop covering my buttons!",
nonsenseWords,
multiple = TRUE,
selected=nonsenseWords[c(1,5,7,11,20)]
)
# The line below puts static space between the dropdown and the submit button -- this is what I want to remove
# ,tags$div(style = "height: 16em;")
)
,fluidRow(style = "margin: 1%",
actionButton("submit", "Submit")
)
),
dashboardBody(
dataTableOutput("choice")
)
)
server <- function(input, output, session) {
output$choice <- renderDataTable({
req(input$submit)
return(data.frame("Chosen Words" = c(input$tall_list)))
})
}
shinyApp(ui, server)
使用这个CSS:
dashboardBody(
tags$head(
tags$style(".selectize-dropdown {position: static}")
),
dataTableOutput("choice")
)