2016-01-30 16 views
0

我想在jQuery上獲取一些包含PHP的CSS。 基本上,我需要這個CSS:在JQuery上注入一些包含PHP的CSS

background: #3c653c url(<?php echo $cta_background_image_url; ?>) no-repeat fixed; 

適用於:

wp.customize('cta_background_image', function(value) { 
    var styles = { 
      backgroundPosition : "center top", 
      backgroundBlendMode: "hard-light", 
      position: "relative", 
      height: "440px", 
      backgroundRepeat: "no-repeat", 
      backgroundAttachment: "fixed", 
      backgroundSize: "cover", 
      lineHeight: "200%", 
      color: "#fff", 
      overflow: "hidden", 
      paddingTop: "0", 
      marginBottom: "0" 
     }; 
    value.bind(function(to) { 
     $('.cta-parallax-section ').css('background', 'url(' + to + ')'); 
     $('.cta-parallax-section ').css(styles); 
    }); 
}); 

我需要太多注入,它說的CSS代碼( '背景', 'URL(' +至+ ')') ;

此代碼將應用於WordPress定製器,使其能夠在預覽窗口中實時呈現用戶所做的更改。

我該如何做到這一點?我無法在網上找到有關這種機動的信息。

在此先感謝!

回答

0

要從變量$cta_background_image_url;中獲取值,您可以簡單地設置一個超時值並從元素中檢索值,您可以使用該值進行任何您想要的操作。

例如:

setTimeout(function() { 
    var data = $("background").css("background-image"); 
}, 50); 

可變data將輸出url([ value from $cta_background_image_url ])

要注入它,只需使用可變data

$('.cta-parallax-section ').css('background', data); 
+0

謝謝你的迴應。也許我沒有解釋自己夠好。我真正需要的是:背景:#3c653c url(<?php echo $ cta_background_image_url;?>)no-repeat fixed;在這裏注入:$('.cta-parallax-section').css('background',//代碼在這裏);但我忽略了正確的語法。每次嘗試一些不同的選項時,我都會遇到錯誤。你介意分享你如何去做?再次感謝。 – Ulises

+0

是[this](https://jsfiddle.net/6uv3zgm7/)你在找什麼? – TheOnlyError

0

你可以把一些瓦爾頭使用此代碼:

add_action('wp_head', function(){ ?> <script type='text/javascript'> var bg_img = '<?php echo $bg_img; ?>'; </script> <?php });

而在你的js代碼中使用bg_img變種。但更好的方法是使用wp_localize_script函數。

+0

嗨,我感謝你的回答,我想我沒有解釋自己夠好。我需要的是這個由此php控制的十六進制顏色#3c653c:'<?php echo get_theme_mod('team_img_filter'); ('+ to +')');在這裏面:$('.cta-parallax-section').css('background','//這裏是我需要插入previus php url '謝謝我已經嘗試了很多東西,並且我無法正確理解它。 – Ulises

+0

使用我的示例中的代碼,您可以將顏色值設置爲js var。然後像這樣設置val: '$('.cta-parallax-section').css('background',bg_img);' – glutaminefree