我需要在图层控制框中更改文本的颜色。
我知道用Javascript是可行的,但是我需要在R中做到这一点。我认为这可能与layersControlOptions
函数有关,但是我找不到任何能显示所有此参数的文档。
addLayersControl(
baseGroups = c("OSM (default)", "Toner", "Toner Lite"),
overlayGroups = c("Quakes", "Outline"),
options = layersControlOptions(collapsed = FALSE)
)
答案 0 :(得分:2)
使用闪亮,您可以执行以下操作:
library(shiny)
library(leaflet)
ui <- fluidPage(
leafletOutput('map'),
# Add custom CSS & Javascript;
tags$style(".leaflet-control-layers-expanded{color: red}")
)
server <- function(input, output, session) {
output$map <- renderLeaflet({
leaflet(quakes) %>%
addTiles() %>%
addMarkers() %>%
addLayersControl(
baseGroups = c("OSM (default)", "Toner", "Toner Lite"),
overlayGroups = c("Quakes", "Outline"),
options = layersControlOptions(collapsed = FALSE)
)
})
}
shinyApp(ui, server)
关键行是tags$style(".leaflet-control-layers-expanded{color: red}")
。使用颜色名称,十六进制颜色代码或RGB颜色代码根据需要编辑红色。
更新
要在“ RStudio查看器”窗格中显示(即不发光),您可以执行以下操作:
library(leaflet)
library(htmltools)
m <- leaflet(quakes) %>%
addTiles() %>%
addMarkers() %>%
addLayersControl(
baseGroups = c("OSM (default)", "Toner", "Toner Lite"),
overlayGroups = c("Quakes", "Outline"),
options = layersControlOptions(collapsed = FALSE)
)
browsable(
tagList(
tags$style(".leaflet-control-layers-expanded{color: red}"),
m
)
)
改编自here。
进一步更新
根据对不同颜色的需求:
form.leaflet-control-layers-list
可以替代.leaflet-control-layers-expanded
在.leaflet-control-layers-base
和.leaflet-control-layers-overlays
之间存在如下拆分:
library(shiny)
library(leaflet)
ui <- fluidPage(
leafletOutput('map'),
# Add custom CSS & Javascript;
tags$style(".leaflet-control-layers-base{color: red}",
".leaflet-control-layers-overlays{color: blue}")
)
server <- function(input, output, session) {
output$map <- renderLeaflet({
leaflet(quakes) %>%
addTiles() %>%
addMarkers() %>%
addLayersControl(
baseGroups = c("OSM (default)", "Toner", "Toner Lite"),
overlayGroups = c("Quakes", "Outline"),
options = layersControlOptions(collapsed = FALSE)
)
})
}
shinyApp(ui, server)
不幸的是,由于css似乎没有区别,我还没有找到如何按特定的行着色的方法。