我遇到了step函数的一些问题。我必须在STEP函数中调用一个复杂的函数,但我试图限制调用次数以提高性能。为了使事情更复杂,我正在制作2个属性。
obj.animate({'width':newWidth+px,'height':newHeight+px},
{duration:time,queue:false,step:function(now,fx){
complicatedFunction();
}});
该函数考虑OBJ的位置/尺寸,然后计算大约10个其他元素的新尺寸和位置,因此间隔必须相当流畅(可能每隔3或4次迭代?)什么是最好的方法限制复杂功能被调用的次数? 谢谢:))
答案 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()
回调中运行它。 (更新以反映)