禁用特定范围滑块

时间:2019-05-06 16:39:31

标签: r shiny shinyjs

我有一个最小为0且最大为1的sliderInput。有没有办法我可以禁用范围0-0.2和0.8-1,因此用户只能在滑块上选择范围0.2-0.8。 ?

注意:我不想更改最大值和最小值,我希望用户知道还有更多,但是当前无法选择。

我通过这篇R shiny sliderInput with restricted range帖子发现了有价值的信息,但是我希望获得与使用shinyjs::disable("")时相同的输出。表示无法获得的灰色区域。

谢谢!

1 个答案:

答案 0 :(得分:1)

有可能:

sliderInput2 <- function(inputId, label, min, max, value, step=NULL, from_min, from_max){
  x <- sliderInput(inputId, label, min, max, value, step)
  x$children[[2]]$attribs <- c(x$children[[2]]$attribs, 
                               "data-from-min" = from_min, 
                               "data-from-max" = from_max)
  x
}

css <- "
.irs-grid-text {
  color: black;
}
.js-grid-text-0, .js-grid-text-1, .js-grid-text-9, .js-grid-text-10 {
  color: #99a4ac;
}"

ui <- fluidPage(
  tags$head(
    tags$style(HTML(css))
  ),
  sliderInput2("slider", "Slide:",
              min = 0, max = 1, value = 0.5, step = 0.1, from_min = 0.2, from_max = 0.8
  )
)

server <- function(input, output) {}

shinyApp(ui, server)

enter image description here