亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

clearInterval無效?

把onmouseover換成onclick時,第一個clearInterval(timer)就不能起到作用了,有沒有同學遇到相同的情況??

<body>
<div?id="container">
	<div?id="box"></div>
</div>
<script?type="text/javascript">
	window.onload=function(){
		var?obox=document.getElementById("box");
		obox.onclick	=function(){
			startmove();
		}
	}

	
	function?startmove(){
		var?timer=null;
		clearInterval(timer);
		var?oc=document.getElementById("container");
		setInterval(function(){
			if?(oc.offsetLeft==0)?{
				clearInterval(timer);
			}
			else{
				oc.style.left=oc.offsetLeft+1+"px";
			}	
		},30)
	}
</script>
</body>



正在回答

3 回答


1、var timer=null應該聲明在function函數外面。若聲明在函數內部,每次調用函數時都會在函數內部聲明一個timer變量,且每個timer變量都不相同,所以clearImterval(timer)不起作用。與換成onclick沒有關系。

2、timer=setInterval().

0 回復 有任何疑惑可以回復我~
#1

kkk4 提問者

試過了,聲明在外面也無效
2016-06-21 回復 有任何疑惑可以回復我~
#2

kkk4 提問者

同樣的,計時器聲明在函數里面,把onclick換成onmouseover,清除計時器又可以生效了
2016-06-21 回復 有任何疑惑可以回復我~
#3

kkk4 提問者

非常感謝!
2016-07-07 回復 有任何疑惑可以回復我~

第18行應該是timer=setInterval(function(){ ? ? ? ?吧。

0 回復 有任何疑惑可以回復我~

樣式上加上 body{margin:0;padding:0;}?

要不然

oc.style.left=oc.offsetLeft+1+"px";這語句只會是每次加9

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JS動畫效果
  • 參與學習       113918    人
  • 解答問題       1502    個

通過本課程JS動畫的學習,從簡單動畫開始,逐步深入各種動畫框架封裝

進入課程

clearInterval無效?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號