R Shiny - 改变方向颜色滑块输入
R Shiny - Change direction color sliderInput
我想更改默认情况下 sliderInput 中颜色的方向。例如:
ui <- fluidPage(
fluidRow(
column(width = 6,
sliderInput( inputId = "mySlider",
label = "Some text",
min = 0, max = 50,
value = 10
)
)
)
)
server <- function(input, output, session) {}
shinyApp(ui, server)
不是让蓝色从 0 填充到 10(初始值),而是从 10 填充到 50。
我看到 shinyWidgets
包中的 noUiSliderInput
允许改变方向,但它改变的不仅仅是颜色。
有没有简单的方法来做到这一点?
外观由 sliderInput
的 CSS 文件定义,我找到了自定义闪亮主题 here。然后我只是改变了背景和滑块的颜色。可惜我的CSS功力有限,无法重现灰色背景的3D效果,现在只是灰色。
library(shiny)
ui <- fluidPage(
fluidRow(
column(width = 6,
tags$head(tags$style(HTML("
.irs-bar {
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
background: #ddd;
}
.irs-bar-edge {
border: 1px solid #ddd;
background: #ddd;
}
.irs-line {
background: #428bca;
border: 1px solid #428bca;
}"))),
sliderInput( inputId = "mySlider",
label = "Some text",
min = 0, max = 50,
value = 10
)
)
)
)
server <- function(input, output, session) {}
shinyApp(ui, server)
感谢 starja 的回答,我终于找到了如何更改(一个或多个滑块)与 sliderInput
完全相同的外观。这是代码:
library(shiny)
css <- "
#reverseSlider .irs-bar {
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
background: linear-gradient(to bottom, #DDD -50%, #FFF 150%);
}
#reverseSlider .irs-bar-edge {
border: 1px solid #ddd;
background: linear-gradient(to bottom, #DDD -50%, #FFF 150%);
border-right: 0;
}
#reverseSlider .irs-line {
background: #428bca;
border: 1px solid #428bca;
}
"
ui <- fluidPage(
fluidRow(
column(width = 6,
tags$style(type='text/css', css),
div(id = "reverseSlider",
sliderInput( inputId = "mySlider1",
label = "Some text",
min = 0, max = 50,
value = 10 )
),
sliderInput( inputId = "mySlider2",
label = "Some other text",
min = 0, max = 50,
value = 10 )
)
)
)
server <- function(input, output, session) {}
shinyApp(ui, server)
我想更改默认情况下 sliderInput 中颜色的方向。例如:
ui <- fluidPage(
fluidRow(
column(width = 6,
sliderInput( inputId = "mySlider",
label = "Some text",
min = 0, max = 50,
value = 10
)
)
)
)
server <- function(input, output, session) {}
shinyApp(ui, server)
不是让蓝色从 0 填充到 10(初始值),而是从 10 填充到 50。
我看到 shinyWidgets
包中的 noUiSliderInput
允许改变方向,但它改变的不仅仅是颜色。
有没有简单的方法来做到这一点?
外观由 sliderInput
的 CSS 文件定义,我找到了自定义闪亮主题 here。然后我只是改变了背景和滑块的颜色。可惜我的CSS功力有限,无法重现灰色背景的3D效果,现在只是灰色。
library(shiny)
ui <- fluidPage(
fluidRow(
column(width = 6,
tags$head(tags$style(HTML("
.irs-bar {
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
background: #ddd;
}
.irs-bar-edge {
border: 1px solid #ddd;
background: #ddd;
}
.irs-line {
background: #428bca;
border: 1px solid #428bca;
}"))),
sliderInput( inputId = "mySlider",
label = "Some text",
min = 0, max = 50,
value = 10
)
)
)
)
server <- function(input, output, session) {}
shinyApp(ui, server)
感谢 starja 的回答,我终于找到了如何更改(一个或多个滑块)与 sliderInput
完全相同的外观。这是代码:
library(shiny)
css <- "
#reverseSlider .irs-bar {
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
background: linear-gradient(to bottom, #DDD -50%, #FFF 150%);
}
#reverseSlider .irs-bar-edge {
border: 1px solid #ddd;
background: linear-gradient(to bottom, #DDD -50%, #FFF 150%);
border-right: 0;
}
#reverseSlider .irs-line {
background: #428bca;
border: 1px solid #428bca;
}
"
ui <- fluidPage(
fluidRow(
column(width = 6,
tags$style(type='text/css', css),
div(id = "reverseSlider",
sliderInput( inputId = "mySlider1",
label = "Some text",
min = 0, max = 50,
value = 10 )
),
sliderInput( inputId = "mySlider2",
label = "Some other text",
min = 0, max = 50,
value = 10 )
)
)
)
server <- function(input, output, session) {}
shinyApp(ui, server)