【发布时间】:2013-03-20 05:40:59
【问题描述】:
因此,我正在寻找一些关于在以 360 次迭代结束的循环中切换元素的类(三个一组)的最佳方法的建议。我试图避免嵌套循环,并确保良好的性能。
我有什么:
// jQuery flavour js
// vars
var framesCount = '360'; // total frames
var framesInterval = '5000'; // interval
var statesCount = 3; // number of states
var statesCountSplit = framesInterval/statesCount;
var $scene = $('#scene');
var $counter = $scene.find('.counter');
// An early brain dump
for (f = 1; f < framesCount; f += 1) {
$counter.text(f);
for (i = 1; i < statesCount; i += 1) {
setTimeout(function() {
$scene.removeClass().addClass('state-'+i);
}, statesCountSplit);
}
}
因此,您会看到,对于 360 个frames 中的每一个,每隔一段时间就会有三个班级切换。虽然我还没有测试过,但一旦frames 的值达到数千(它可能),我担心这里的性能会受到影响。
这个 sn-p 显然有缺陷(非常),请让我知道我能做些什么来使这个 a) 工作,b) 有效工作。谢谢:-)
【问题讨论】:
-
您可能需要 parseInt 的 framesInterval/statesCount 来最小化每次转换为 int 的次数
标签: javascript animation settimeout setinterval