2011-07-12 163 views
7

我正在開發一個項目,其中一項任務是使背景靜態並覆蓋整個頁面。關於這一點,我發現this tutorial,使用「真棒,簡單,漸進的CSS3方式」。我的問題是,我有更多的頁面,每個人都有不同的背景,所以我必須把背景圖像上<body>這樣的:添加jquery添加MS過濾器

<body style="background-image:url(images/mainBg_1.jpg);"> 

(也css樣式放在<body>,而不是「HTML」,像例子)

正如你可以在鏈接看到,有IE瀏覽器的過濾器,像這樣:

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='.**myBackground.jpg**', sizingMethod='scale'); 
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='**myBackground.jpg**', sizingMethod='scale')"; 

的問題是,「myBackground.jpg」從<body>標籤取,因爲我寫的以上,所以我不能直接寫在CSS中(每個頁面都有不同的背景)。

有沒有辦法使用jQuery添加這些過濾器?我成功地從身體拿走了圖片的路徑,所以我只需要將它粘貼到這段代碼中,然後添加jQuery for IE < = 8。

感謝您的回答,跟着他們我成功解決了我的問題。所以,如果有人想代碼:

$(function(){  
    var mu = $.browser; 
    if (mu.msie && mu.version < 9) { 

     var curBg = $('html').attr('style'); 
     curBg = curBg.split('('); 
     curBg = curBg[1].split(')'); 

     $('html').css({ 
        "filter" : "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+curBg[0]+"', sizingMethod='scale')", 
        "-ms-filter" : "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+curBg[0]+"', sizingMethod='scale')" 
      });   

    } 
}); 
+0

你看到你的任何代碼嗎?你說...'這樣'...什麼也沒有出現!將您的代碼放入'' –

回答

0

您可以使用$( '主體'),CSS()或$( '身體')ATTR()和改變身體的風格屬性。

http://api.jquery.com/css/

http://api.jquery.com/attr/

+0

坦克中作爲您的答案。我對這些功能有一些瞭解,但我不確定如何在這種情況下使用它。現在我成功了,所以一切看起來都很好。 – stefanz

1

測試這種方式
它可能是這樣:

您在頁面中添加包含所需圖片的隱藏img元素

<img class="myBgImage" src="images/mainBg_1.jpg" style="display:none"/> 


您從圖像類名

var bgImage = $('img.myBgImage').attr('src'); 

$('body').append("<style>body{progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+bgImage+"', sizingMethod='scale'); -ms-filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' "+ bgImage +"', sizingMethod='scale')';}</style>"); 

抓取圖像src你追加到身體的CSS IE修復具有BG-圖像的VAR持有IMG src網址。

只是一個想法。

+0

最好將樣式添加到頭部,而不是身體。 – Emil

+0

同意。謝謝埃米爾 –

+0

你的想法很好,但沒有按照正確的方式。我也把圖片放在html上。 – stefanz