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)
您可以使用 $('body').css() 或 $('body').attr() 并更改 body 的样式属性。