2017-12-18 199 views
1

請參閱以下MWE:R /單張:使LayersControl出現的點擊,而不是懸停後

library(shiny) 
library(leaflet) 


ui <- fluidPage(leafletOutput("mymap")) 

server <- function(input, output, session) { 
    output$mymap <- renderLeaflet({ 
    leaflet() %>% 
     addProviderTiles(
     providers$Stamen.TonerLite, 
     group = 'stamen', 
     options = providerTileOptions(noWrap = TRUE) 
    ) %>% 
     addProviderTiles(providers$CartoDB.Positron, group = 'cartodb') %>% 
     addLayersControl(baseGroups = c('stamen', 'cartodb'), 
         position = 'bottomleft') 

    }) 
} 

shinyApp(ui, server) 

的標準行爲的LayerControl(addLayersControl)是用戶將鼠標懸停在圖標後出現。相反,我想在點擊它之後查看圖層選項。標準的addLayersControl函數不提供這樣的功能。有人知道解決方法嗎?

+0

你看過這個選項嗎? http://leafletjs.com/reference-1.2.0.html#control-layers-collapsed – Baptiste

+0

是的,該選項使它摺疊,這是很好的。但我不知道如何讓它只是點擊打開而不是懸停。 – mcdesign

回答

0

我不知道[R但在JS,你需要選擇collapsed添加到您的L.control.layers 現在,如果你要打開的控制,你必須調用此:

$(".leaflet-control-layers").addClass("leaflet-control-layers-expanded"); 

如果你想關閉它:

$(".leaflet-control-layers").removeClass("leaflet-control-layers-expanded"); 
相關問題