0

我正在尝试在 jQuery 和 CSS 中淡化背景,这是我的代码 - 但它不起作用。有任何想法吗?

var images = ['bg.jpg', '_4.jpg', '_5.jpg', '_6.jpg'];
var i = 0;

setInterval(function(){
$('body').animate({opacity: 0}, 'slow', function() {
        $(this)
            .css('background-image', function() {
        if (i >= images.length) {
            i=0;
        }
        return 'url(' + images[i++] + ')'; 
    });
            .animate({opacity: 1});
    });
}, 1000);
});
4

2 回答 2

0
setInterval(function(){
            $('.light').animate({opacity: 0}, 4000, function() {
                $('.light').css({background:'url(./images/' + images[i++] + ') no-repeat top center'}).animate({opacity: 1},4000);
                if (i >= images.length) { i=0; }
            });
        }, 4000);

这个必须工作我在 div 上试试这个

于 2013-12-10T00:13:17.537 回答
0

您可以为背景颜色设置动画,但不能为背景图像设置动画,我也用头撞墙。

请参阅此处-在滚动时淡入新的背景图像

正如我的问题的答案一样,您需要使用<img>带有负 z-index 的 's 并将它们淡入。

我是这样做的——

CSS

#img1, #img2, #img3, #img4 {
    width:100%;
    height:100%;
    display:none;
    position:fixed;
    z-index:-1;
}

jQuery

    $(document).scroll(function () {
    var y = $(this).scrollTop();
    if (y > 150) {
        $('#img2').fadeIn();
    }
    else {$('#img2').fadeOut('fast')};

    if (y > 300) {
        $('#img3').fadeIn();
    }
    else {$('#img3').fadeOut('fast')};

    if (y > 450) {
        $('#img4').fadeIn();
    }
    else {$('#img4').fadeOut('fast')};
});
于 2013-05-06T23:37:49.670 回答