同时淡入和淡出背景图像

时间:2013-02-22 13:24:02

标签: javascript jquery background-image

问题是我的背景图像具有不同的大小和不可预测性,因此使用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);

http://jsfiddle.net/mVAvF/1/

我想要做的是淡化新的背景图像,同时淡出旧的背景图像。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

您不能在同一元素中将一个背景淡入另一个背景。 你必须在当前背景的顶部或后面添加另一个元素,然后在新元素位于顶部时淡出新元素,或者如果新元素在后面则淡化旧元素。

之前我回答了类似的问题,其中包含一个jsFiddle: jQuery background image rotation script - looking to modify