首先在JavaScript中約定時器一些常規信息:
計時器總是生成的ID。當您撥打setTimeout
或setInterval
時,這些本機功能將返回timer id
。在第一個聲明此計時器ID存儲在animate
:
var animate=setTimeout("swapImage()",5000);
然而,當你調用clearTimeOut
存儲在animate
定時器被清除。當您再次撥打setTimeOut
時,您需要存儲新的ID。
function resume(){ animate = setTimeout(swapImage,5000);}
但是每次想要延遲執行時都需要調用setTimeout
。 setTimeout
延遲執行語句n
其中n
是以毫秒爲單位的時間。 setInterval
在n
毫秒後再次重複聲明。
基於在鏈接的代碼我注意到,每一次函數swapImage
套setTimeout
這就是所謂的。
function swapImage(){
var el = document.getElementById("mydiv");
el.innerHTML=caption[i];
var img= document.getElementById("slide");
img.src= image[i];
if(i < k) { i++;}
else { i = 0; }
animate = setTimeout("swapImage()",5000);
}
我已將animate
添加到函數中。這應該根據鏈接中發佈的代碼來實現。除了下面的代碼。
document.getElementById("slideContainer").addEventListener("mouseover", pause, false); //attach event handlers
document.getElementById("slideContainer").addEventListener("mouseout", resume, false);
function pause() {
clearTimeout(animate);
}
function resume() {
animate = setTimeout("swapImage()",5000);
}
這段代碼將兩個事件處理程序(mouseover和mouseout)附加到您的表中。當某人懸停在桌面上時,將觸發mouseover
事件並執行pause
函數。 mouseout
觸發resume
。你還需要更新你的html。需要將id
設置到表中。
<table id="slideContainer" style="border:none;background-color:transparent;">
你能後處理的鼠標懸停及移出事件的JavaScript代碼? –
嘗試
和
function resume(){ animate=setTimeout("swapImage()",5000);}
–我似乎無法獲得該工作 – ike