问题是我的背景图像具有不同的大小和不可预测性,因此使用CSS过渡将为拉伸设置动画,这看起来很难看。因此,我真的需要用JS来做这件事。
var images = [
"http://ns223506.ovh.net/rozne/e800637ee8c7de5cdaed8df8ea3635f1/wallpaper-2585508.jpg",
"http://ns223506.ovh.net/rozne/15382371cb0d5b9319f5f4469bbc4511/wallpaper-2585497.jpg"
];
var counter = 0;
setInterval(function () {
$(".bg").css('backgroundImage', 'url("' + images[counter] + '")');
$('<img>').attr('src', images[++counter]); // preload the next image
if (counter == images.length) counter = 0;
}, 2000);
我想要做的是淡化新的背景图像,同时淡出旧的背景图像。有什么建议吗?
答案 0 :(得分:2)
您不能在同一元素中将一个背景淡入另一个背景。 你必须在当前背景的顶部或后面添加另一个元素,然后在新元素位于顶部时淡出新元素,或者如果新元素在后面则淡化旧元素。
之前我回答了类似的问题,其中包含一个jsFiddle: jQuery background image rotation script - looking to modify