[問題] clearTimeout 沒效,圖片還會一直加速

看板Web_Design作者 (兩光宅男)時間17年前 (2008/08/11 18:52), 編輯推噓4(4012)
留言16則, 3人參與, 最新討論串1/1
我想要圖疑動完之後就停在原來的地方 可是clearTimeout一直沒有效果 而且滑鼠只要經過圖,圖就會加速 經過越多次越快,怎麼會這樣? <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=big5"> <title>新增網頁1</title> </head> <body> <p>  </p> <p>  </p> <p>  </p> <p> <img id=1 border="0" src="http://l.yimg.com/tw.yimg.com/i/tw/sports/olympics6/60x60.jpg" width="20" height="21" onmousemove="qq()"></p> <script language=javascript> var s_y=0; var t; function qq(){ document.getElementById('1').style.marginTop=s_y; s_y=s_y-1; document.getElementById('1').style.marginTop=s_y; t= setTimeout("qq()",100); if(s_y<-200){ s_y=0; timeout(); }} function timeout(){clearTimeout(t);} </script> </body> </html> -- 一台電腦一張卡 型男陳士駿 一台電腦一張卡 宅男maonenine -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.142.25.213

08/11 21:18, , 1F
setTimeout 只會執行一次,所以你清除的動作是多餘的
08/11 21:18, 1F

08/11 21:21, , 2F
還有,目前看來你的觸發方法 mousemove 似乎有問題
08/11 21:21, 2F

08/11 21:45, , 3F
setTimeout不是100毫秒就會執行一次嗎?
08/11 21:45, 3F

08/11 21:46, , 4F
問題在於qq遞迴qq 永遠都有下一次timerout
08/11 21:46, 4F

08/11 21:47, , 5F
應該要針對 setTimeout("qq()",100); 下條件控制
08/11 21:47, 5F

08/11 21:47, , 6F
主要是我一直無法清除掉計時的情況,圖片歸位又自己上跑
08/11 21:47, 6F

08/11 21:51, , 7F
TonyQ說的我不是很懂,我是照W3CSchool範例下去改的
08/11 21:51, 7F

08/11 21:54, , 8F
http://0rz.tw/4b4BO 他確實能停止計數 忘了說抱歉T大
08/11 21:54, 8F

08/11 21:58, , 9F
clearTimeout本身是可以中斷正在進行的程序 , 但是在你的例
08/11 21:58, 9F

08/11 21:58, , 10F
子中由於mousemove會在經過時不斷觸發 , 所以會產生多個func
08/11 21:58, 10F

08/11 21:59, , 11F
tion 導致一歸0就有另一個function 繼續接著跑 .
08/11 21:59, 11F

08/11 22:01, , 12F
而T只紀錄最後一個 , 所以會造成其他的也不會被清掉
08/11 22:01, 12F

08/11 22:02, , 13F
變成一個無窮迴圈
08/11 22:02, 13F

08/11 22:05, , 14F
真的耶,我拿去驗證W3C的範例,多點會加速計時
08/11 22:05, 14F

08/11 22:07, , 15F
要停止就看點幾下,還幾次
08/11 22:07, 15F

08/11 22:10, , 16F
還是來寫今天的文章好了 , 今天的文章會針對相關效果介紹.
08/11 22:10, 16F
文章代碼(AID): #18e1dylM (Web_Design)