這段時間做抽獎的轉盤,需要實現抽獎轉速由慢變快的效果。這就需要在setInterval運行時動態縮短時間間隔來實現。在實際操作中我發現無法改變一個timer的時間間隔,而需要反復的運行,清除,再運行,再清除(定時器)。使用函數表達式和遞歸實現:
var counter = 10; var myFunction = function(){ clearInterval(interval); counter *= 10; interval = setInterval(myFunction, counter); } var interval = setInterval(myFunction, counter);
由於在運行時,setInterval立馬被清除,實際可用setTimeout代替。
關於javascript timer運作原理的一片how javascript timer works