jQuery Animate Stepfunction

我遇到了step函数的一个问题。 我必须在STEP函数中调用一个复杂的函数,但我试图限制调用次数以提高性能。 为了使事情更复杂,我正在制作2个属性的动画。

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

该函数考虑OBJ的位置/尺寸,然后计算大约10个其他元素的新尺寸和位置,因此间隔必须相当流畅(可能每隔3或4次迭代?)什么是限制的最佳方法复杂function被调用的次数? 谢谢 :)

最简单的是使用计数器。

 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()回调中运行它。 (更新以反映)