每次点击都会提高animate()的速度()

时间:2013-09-22 13:09:59

标签: jquery jquery-animate

我需要一个按钮,每次点击都会提高动画的速度。

目前我正在尝试:

function move(){
  var speed = 5000;
  $('img').animate({
    'left':'+=50'
  }, speed, move);
  $('li').click(function(){
    speed -= 4000;
  }); 
};
move();

但这似乎没有做任何事情。我该怎么办?

1 个答案:

答案 0 :(得分:2)

代码的问题是即使点击处理程序更改speed的值,每次调用move都会将其重置为初始值5000,同时也会有多个点击处理程序注册多次调用方法move

尝试

function move() {
    var speed = 5000;
    function animate(){
        $('img').animate({
            'left': '+=50'
        }, speed, animate);
    }
    animate();
    $('li').click(function () {
        speed -= 4000;
    });
};
move();

演示:Fiddle