我正在嘗試使用JavaScript爲頁面上的某些元素設置動畫效果(帶精靈的CSS動畫將不適用於我需要的操作)。在JavaScript中正確處理setTimeout
我目前正在做這樣的事情;
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);
}
技術上這個作品,但是這將是會做類似的事情在頁面上很多的動畫之一,我很擔心這是做這件事的方式效率極低。
我知道最好的做法是在調用setTimeout之前使用clearTimeout()
,但我不知道如何記錄setTimeout並遞歸地將它傳遞給自身(如果這是有道理的!)。
任何有關這樣做的最佳實踐方式的指導將不勝感激。
該代碼看起來沒問題。 'setTimeout'足夠「高效」,因爲它不會浪費任何CPU週期或捆綁其他任何東西。我會說你很好。 –