繁体   English   中英

jQuery fadeOut(function(){fadeIn});

[英]JQuery fadeOut(function(){fadeIn});

我的网页有问题。 我有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中消失

这是一个简单的帮助程序功能,可以帮助您完成此操作。

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

jsFiddle

我会说尝试使用finish()方法:

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

在您的情况下,最好在delay()之后使用它

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

$('.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

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();
});

因此, 只需将回调移至第3个参数 ,一切便会正常进行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM