Jquery 使用参数时设置持续时间更改动画

Jquery 使用参数时设置持续时间更改动画,jquery,Jquery,以下代码动画无限运行,每次都能完美运行: function func(){ $('.one').animate({width:'100%'},5000,function(){ $('.two').animate({width: '100%'},1000,function(){ $('div').width('0px'); func(); }); }); } func(); 但是现在我想像这样使用fu

以下代码动画无限运行,每次都能完美运行:

function func(){
    $('.one').animate({width:'100%'},5000,function(){
        $('.two').animate({width: '100%'},1000,function(){
            $('div').width('0px');
            func();
        });
    });
}
func();
但是现在我想像这样使用
func()
的参数:

function func(one,two){
    $('.one').animate({width:'100%'},one,function(){
        $('.two').animate({width: '100%'},two,function(){
            $('div').width('0px');
            func();
        });
    });
}
func(5000,1000);
但这次动画持续时间非常快(请参见下一次动画)


和。

调用
func()时没有传入任何值
$('.two').animate()函数中。默认情况下,jQuery将
未定义的
动画默认设置为
400
,从而为您处理这些动画-这就是动画速度更快的原因

更改:

$('.two').animate({width: '100%'},two,function(){
    $('div').width('0px');
    func();
});
致:

使用相同的参数调用func:

 func(one, two);

你能检查一下这个演示吗?我对设置间隔有些问题。。。第一个红色div将永久停留在那里。@C-linkNepal您需要停止
'.one'
动画。由于某些原因,动画完成后仍在继续。您可以通过添加
$('.one').stop(true)来完成此操作$('div').width()之前执行code>。
 func(one, two);