在css3中使用多层背景时,如何在点击事件中使用jquery剥离图层?
body {
background:url(./images/bg2.jpg), url(./images/bg1.jpg);
}
所以在这种情况下,一个背景将显示在另一个背景之上。我想使用jquery删除顶部背景。任何想法?
答案 0 :(得分:0)
使用此选项删除第一个背景:
var bg = $("body").css("background");
var bgs = bg.split(',');
bgs.splice(0,1);
$("body").css("background", bgs.concat());
答案 1 :(得分:0)
var currentsBodyBg = $('body').css('background');
// DELETE every backgrounds after the first;
var new =currentsBodyBg.replace(/,.*/gi, ";");
$('body').css('background', new);
答案 2 :(得分:0)
var b = $('body');
var images = b.css('background-image').split(',');
b.css('background-image', images[1]);
答案 3 :(得分:0)
您必须使用background-image
而不是background
,否则返回的字符串包含no-repeat top left scroll transparent
其他内容。
最顶层的背景图片是以逗号分隔的网址列表中的first
。在每个,
拆分字符串会得到一个包含所有网址的数组。 slice(1)
返回一个包含所有项目的数组。
join(',')
将该数组转换回项目之间,
的字符串。
var $body = $("body");
var imgs = $body.css("background-image").split(',');
$body.css("background-image", imgs.slice(1).join(','));
你可以将它作为oneliner,但有一个缺点:$("body")
被创建两次:
$("body").css({backgroundImage: $("body").css("backgroundImage").split(',').slice(1).join(',')});