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

时间:2014-10-14 10:06:29

标签: jquery

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

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

但是这次动画持续时间非常快(从动画的下一次开始看)。

Demo without parametersdemo with parameters

2 个答案:

答案 0 :(得分:0)

func();功能中调用$('.two').animate()时,您没有传递任何值。默认情况下,jQuery通过将它们默认为undefined来为您处理400动画 - 这就是动画变得更快的原因。

变化:

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

要:

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

答案 1 :(得分:0)

请参阅http://jsfiddle.net/9j69kz39/2/

使用相同的参数调用func:

 func(one, two);