1

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

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

该函数考虑了 OBJ 的位置/尺寸,然后计算大约 10 个其他元素的新尺寸和位置,因此间隔必须相当流畅(也许每 3 次或第 4 次迭代?)什么是限制调用 complexFunction 的次数?谢谢 :)

4

1 回答 1

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

于 2012-09-13T21:47:14.763 回答