jQuery Animate Step功能

时间:2012-09-13 21:42:31

标签: javascript jquery loops jquery-animate

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

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

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

1 个答案:

答案 0 :(得分: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()回调中运行它。 (更新以反映)