4

我想修改 R 中传单弹出窗口的外观。

帮助文件指出,...popupOptions()函数采用“传递给底层 Javascript 对象构造函数的额外选项”。

此示例中,该style选项设置为修改标记外观的 CSS 参数列表:

  addMarkers(
    lng = -118.456554, lat = 34.075,
    label = "Label w/ custom CSS style",
    labelOptions = labelOptions(noHide = T, direction = "bottom",
      style = list(
        "color" = "red",
        "font-family" = "serif",
        "font-style" = "italic",
        "box-shadow" = "3px 3px rgba(0,0,0,0.25)",
        "font-size" = "12px",
        "border-color" = "rgba(0,0,0,0.5)"
      )))

但是,相同的方法似乎不适用于 Popups,正如这个最小的工作示例所示:

if (!require("pacman")) install.packages("pacman")
pacman::p_load(leaflet, eurostat, dplyr)

map <- get_eurostat_geospatial() %>% subset(., .$NUTS_ID == "AT11")

leaflet() %>%

  addPolygons(data = map , 
              group = map$NUTS_ID,
              fillColor = "grey",
              weight = 1,
              color = "black") %>%

  addPopups(lng = 16.3, lat = 47, popup = "Paint it black!",
            options = popupOptions(closeButton = FALSE,
                                   opacity = 0.5,
                                   style = list("background" = "black",
                                                "padding" = "2px",
                                                "border-radius" = "0px")))

一些网页使用 javascript 版本的 Leaflet 解释了使用 CSS 自定义标签(例如这里)。关键似乎是编辑.leaflet-popup-tip.leaflet-popup-content-wrapper. 但我怎样才能做到这一点R(不使用闪亮)?

相关:这个问题,但是它只解决弹出窗口中的修改元素,而不是弹出窗口本身。

我欢迎任何建议。

4

1 回答 1

8

也许你可以使用这个包htmltools来得到你想要的。

map2 <- leaflet() %>%
    addPolygons(data = map , 
                group = map$NUTS_ID,
                fillColor = "grey",
                weight = 1,
                color = "black") %>%
    addPopups(lng = 16.3, lat = 47, popup = "Paint it black!")

library(htmltools)
browsable(
  tagList(list(
    tags$head(
      tags$style(
        ".leaflet-popup-content-wrapper {
    background: black;
    color: #ffffff;
    padding: 2px;
border-radius: 0px;
    }
        "
      )
    ),
    map2
  ))
)
于 2018-01-12T19:20:37.037 回答