JQuery fadeOut(function(){fadeIn});

时间:2013-07-23 19:26:38

标签: javascript jquery fadein fadeout

我的网页有问题。 我有4个div,它们应该在淡出之后逐渐消失。我使用的代码是:

$('.btn').click(function(){
    $('#box3').delay(5000).fadeOut('slow', function(){
        $('#box4').fadeIn('slow');
    });
});

#box1> #box2它的工作原理,#box2> #box3它有效但当我尝试从#box3> #box4有时#box3淡出然后用#box4淡入。我不知道为什么会这样做。

谢谢,

http://jsfiddle.net/chLRa/4/现在正在工作。有时当从3到4时它仍然在3和4中消失

4 个答案:

答案 0 :(得分:4)

这是一个简单的帮助函数,可以帮助您完成此任务。

function fade(thisIn, callback){
    boxes.not(thisIn).filter(':visible').delay(5000).fadeOut('slow', function(){
        thisIn.fadeIn('slow', callback);
    });
}

jsFiddle

答案 1 :(得分:2)

我想尝试使用finish()方法:

$('.btn').click(function(){
    $('#box3').finish().delay(5000).fadeOut('slow', function(){
        $('#box4').fadeIn('slow');
    });
});

在延迟()

之后使用它可能会更好

答案 2 :(得分:0)

使用这些方法的回调版本可能会更好:

$('.btn').click(function(){
    $('#box1').fadeOut('slow', function() {
        $('#box2').fadeIn('slow', function() {
            $('#box2').fadeOut('slow', function() {
                $('#box3').fadeIn('slow', function() {
                    $('#box3').fadeOut('slow', function() {
                        $('#box4').fadeIn('slow', function() {
                            $('#box4').fadeOut('slow');
                        });
                    });
                });
            });
        });
    });
});

jsFiddle

答案 3 :(得分:0)

jQuery官方文档说,第二个参数不是回调,而是缓和风格。

http://api.jquery.com/fadeIn/#fadeIn-duration-easing-complete http://api.jquery.com/fadeOut/#fadeOut-duration-easing-complete

$('#el').fadeOut(750,'swing',function(){
    $('#el').fadeIn();
});

所以只需将你的回调移到第三个参数,一切都会有效。