2016-09-20 7 views
0

は私のR ShinyAppの背景画像にグレースケールフィルタを適用するために、このコードを使用しようとしました:グレースケール背景画像を設定する - シャイニーR

ui <- fluidPage(
    tags$style("body {background: url(http://www.katamon.co.il/pics/2014-15/game19Herzeliya/ARL_1787.jpg) no-repeat center center fixed; 
       background-size: cover; 
       filter:grayscale(100%);}"), 

    headerPanel(fluidRow(column(5,tags$h1(tags$strong("Injury Prevention Data Analysis"), 
           style = "font family:Lobster,cursive; 
             color:white;background-color:black; 
             text-align:center;")))), 

    fluidRow(
    column(3,offset = 9, 
      tags$img(src = "http://www.katamon.co.il/images/logo2015T.png", 
        height = 200,width = 230, align = "right"))), 

を何が起こることはそれだけで第2の画像をフィルタリングすることです。

どのような身体がその理由を知っていますか?

答えて

0

これはCSS関連の問題です。この問題は、またはshinyに固有の問題ではありません。あなたのサンプルスクリプトの問題は、変換がすべてのの子に適用されています(ただし、定義されているbodyには適用されません)。人気のあるソリューションは、背景とコンテンツ用に異なるCSSクラスを定義し、それぞれに個別のHTML要素を定義することによって機能するusing overlaysに重点を置いています。所望の効果を達成するための別の方法CSS pseudo-elementsを使用することです。

library(shiny) 

ui <- shinyUI(fluidPage(
    tags$head(
    tags$style(paste0(
     "body:before { ", 
     " content: ''; ", 
     " height: 100%; width: 100%; ", 
     " position: fixed; ", 
     " z-index: -1; ", 
     " background: url(http://www.katamon.co.il/pics/2014-15/game19Herzeliya/ARL_1787.jpg) no-repeat center center fixed; ", 
     " background-size: cover; ", 
     " filter: grayscale(100%); ", 
     " -webkit-filter: grayscale(100%); }"))), 
    headerPanel(fluidRow(column(5, tags$h1(
    tags$strong("Injury Prevention Data Analysis"), 
    style = "font family:Lobster,cursive;color:white;background-color:black;text-align:center;")))), 
    fluidRow(column(3, offset = 9, 
    tags$img(src = "http://www.katamon.co.il/images/logo2015T.png", 
     height = 200,width = 230, align = "right"))) 
)) 

server <- shinyServer(function(input, output) { 
}) 

shinyApp(ui = ui, server = server) 

-webkit-filterライン:それは近代たブラウザ上で重複しているものの、ビルトインRStudioの私の現在のインストール(v0.99.903)のブラウザがこれを必要とし働く

+0

ありがとうございます!私は実際にこの行を使って修正しました:filter(url(http://www.katamon.co.il/pics/2014-15/game19Herzeliya/ARL_1787.jpg)、グレースケール(1))、それはサファリでクロムこのコードを使用すると、背景画像が全くありません。 –

+0

CSSフィルタ_functions_は、より多くの機能を備えているようであり、まだ_properties_ほど広くサポートされていない可能性があります。 'body:before'擬似要素を使用して提案された解決策があなたにとってうまくいかない理由は何ですか? – omahdi

+0

は問題なく動作します。ありがとうございました。 –

関連する問題