2013-09-22 59 views
0

我需要一個按鈕,每次點擊都會提高我的動畫速度。每次點擊都提高動畫()的速度()

此刻我想:

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

但是,這似乎並沒有做任何事情。我能做什麼?

回答

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

+0

這使得動畫停止。 – sanjaypoyzer

+0

@sanjaypoyzer這是因爲你在第二次點擊後減少4000,速度變成負值 –

+0

@sanjaypoyzer請參閱http://jsfiddle.net/arunpjohny/nzYX4/1 –