function gd() //仍是前面的問題,函數不要寫在定時器裏面,不然沒法再定時器外面調用此函數 { if(aUl.offsetLeft < -aUl.offsetWidth/2) { aUl.style.left='0'; } if(aUl.offsetLeft >0) { aUl.style.left=-aUl.offsetWidth/2+'px'; } aUl.style.left=aUl.offsetLeft+speed+'px'; } var dsq = setInterval(gd,40); //給定時器取個名字是給下面的「暫停」、「重啓」打基礎 oDiv.onmouseover= function() //中止定時器實現暫停的效果 { clearInterval(dsq); //給定時器起名字這裏才能中止那個定時器,不然的話你中止誰呢。(我說的廢話,都會用定時器了還不知道這事^_^) } oDiv.onmouseout= function() //開啓定時器,實現重啓的效果 { //setInterval(gd,40); 錯誤的示範 dsq=setInterval(gd,40); //重點在這裏,咱們須要再開啓這個定時器,必定要在定時器前面加上你定義的那個定時器的變量名,若是不加的話就會又開啓一個新的定時器而後你上面的那個中止dsq定時器的函數是沒法中止這個新的定時器的,當你鼠標不斷移入移出都會開啓一個新的定時器,多個定時器同時執行相同的動做,這樣至關於你的定時器裏面的時間成倍的減小,效果就是你的定時器愈來愈快的執行,你能夠試一下看是什麼效果,不要試多了,當心電腦死機。 }