MS过滤器添加了jquery

ste*_*anz 7 jquery background css3

我正在研究一个项目,其中一个任务是使背景静态并覆盖整个页面.关于这个我找到了这个教程,使用"很棒,简单,渐进的CSS3方式".我的问题是我有更多的页面,每个页面都有不同的背景,所以我必须把背景图像放在<body>这样:

<body style="background-image:url(images/mainBg_1.jpg);">
Run Code Online (Sandbox Code Playgroud)

(还有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')";
Run Code Online (Sandbox Code Playgroud)

问题是"myBackground.jpg"是从<body>标签中获取的,正如我上面所写,因此我不能直接在css中编写(每个页面都有不同的背景).

有没有办法使用jQuery添加这些过滤器?我成功地从body中获取了图像的路径,因此我只需要将其粘贴到此代码中,然后使用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')"
            });         

    }
});
Run Code Online (Sandbox Code Playgroud)

Jef*_*der 0

您可以使用 $('body').css() 或 $('body').attr() 并更改 body 的样式属性。

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

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