2012-09-13 50 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

哈哈,我什至没有注意到。没问题。 :) –