2012-09-13 44 views
1

我遇到了step函數的一個問題。我必須在STEP函數中調用一個複雜的函數,但我試圖限制調用次數以提高性能。爲了讓事情更加複雜,我爲兩個屬性設置了動畫。jQuery Animate Step功能

obj.animate({'width':newWidth+px,'height':newHeight+px}, 
{duration:time,queue:false,step:function(now,fx){ 
    complicatedFunction(); 
}}); 

功能佔的位置/的OBJ的尺寸,然後計算出新的尺寸和位置爲大約10等元素,所以間隔必須相當液(也許每一個第三或第四迭代?)會是什麼限制複雜函數被調用的次數是否是最好的方法? 謝謝:)

回答

1

最簡單的就是使用計數器。

var counter = 0; 

obj.animate({'width':newWidth+px,'height':newHeight+px}, 
{duration:time,queue:false,step:function(now,fx){ 
    if (counter % 4 === 0) { // run function every 4 steps 
     complicatedFunction(); 
    } 
    counter++; 
}}).promise().done(complicatedFunction); 

使用此方法,您還應該在.promise().done()回調中運行它。 (更新反映)

+0

嘿凱文;)再次感謝! – Aaron

+0

哈哈,我什至沒有注意到。沒問題。 :) –