如何在Shiny / R中创建自定义传单弹出样式

时间:2017-01-23 19:21:16

标签: javascript css r shiny leaflet

手头的任务很简单 - 我希望能够在Shiny应用程序中自定义我的Leaflet弹出窗口的CSS样式。我尝试将thisthis示例中的解决方案合并无效。

使用上述两种解决方案,这里有一些(失败的)示例代码:

library(shiny)
library(leaflet)

shinyApp(
  ui <- fluidPage(

      tags$head(includeCSS(system.file('www', 'style.css', package = 'myPackage'))),

      leafletOutput("map", width = "100%", height = "800")
    ), #END UI


  server <- function(input, output, session) {

    output$map <- renderLeaflet({
      leaflet() %>% 
        addTiles() %>% 
        addCircles(lng = -80, lat = 30, radius = 100, popup = as.character("Test"))
    }) #END RENDERLEAFLET
  }
)

style.css文件如下所示,并保存在Shiny app目录中的www文件夹中:

<style>

.custom-popup .leaflet-popup-content-wrapper {
  background: #DB0925;
  color:#fff;
  font-size:16px;
  line-height:24px;
  }
.custom-popup .leaflet-popup-content-wrapper a {
  color:rgba(255,255,255,0.5);
  }
.custom-popup .leaflet-popup-tip-container {
  width:30px;
  height:15px;
  }
.custom-popup .leaflet-popup-tip {
  border-left:15px solid transparent;
  border-right:15px solid transparent;
  border-top:15px solid #2c3e50;
  }
</style>

<div class='custom-popup' id='map'></div>

我怀疑我的css文件的路径是问题。当我按原样运行此代码时,出现以下错误:

  

文件中的警告(con,&#34; r&#34;):文件(&#34;&#34;)仅支持open =&#34; w +&#34;和   open =&#34; w + b&#34;:使用前者

任何解决方案如何使其工作?

1 个答案:

答案 0 :(得分:2)

Icaro Bombonato带领我解决了问题!在{i}中,所有必要的内容都是tags$head(includeCSS(system.file('www', 'style.css', package = 'myPackage'))),,而不是includeCSS("style.css")style.css文件也位于我的主要Shiny目录中,而不是www文件夹中。