我正在尝试使用 JavaScript 为页面上的某些元素设置动画(带有精灵的 CSS 动画不适用于我需要做的事情)。
我目前正在做这样的事情;
function animate_element(current_id)
{
var next_id = parseInt(current_id, 10) + 1;
$('#lighthouse')[0].src = '/element_' + next_id + '.png';
if (next_id >= 8) {
next_id = 0;
}
setTimeout(function() {
animate_element(next_id);
}, 750);
}
从技术上讲,这是可行的,但这将是页面上许多类似的动画之一,我担心这是一种低效的方法。
我知道最好的做法是clearTimeout()
在调用 setTimeout 之前使用,但我不知道如何记录 setTimeout 并将其递归地传递给自身(如果这有任何意义!)。
任何有关执行此操作的最佳实践方式的指导将不胜感激。