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

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

為什么鼠標不停上下移動,滾動就會越來越快


<!DOCTYPE html>

<html>

<head>

? <meta charset="UTF-8" />

? <title>demo</title>

? <style type="text/css">

? ? *{margin:0;padding:0;}

? ? div{width:50px;

? ? ? ? overflow:hidden;

? ? ? height:50px;margin:10px auto;


? ? }

? ? ul{

? ? ? height: 72px;

? ? ? overflow:hidden;

? ? ? border:1px solid #ccc;

? ? }

? </style>


</head>

<body>

? <div id="box">

? ? <ul id="con1">

? ? ? ? <li>哈哈哈</li>

? ? ? ? <li>ooooo</li>

? ? ? ? <li>cccc</li>

? ? ? ? <li>qqqqqqq</li>

? ? </ul>

? ? <ul id="con2"></ul>

? </div>

? <script type="text/javascript">

var gg=document.getElementById('con1');

var cc=document.getElementById('con2');

var bb=document.getElementById('gundongbody');

cc.innerHTML=gg.innerHTML;

mydd=setTimeout(startwork,600);

function startwork(){

? ? ? ? var gg=document.getElementById('con1');

var cc=document.getElementById('con2');

var bb=document.getElementById('box');

bbk=setInterval(function(){

if(bb.scrollTop%28==0)

{

clearInterval(bbk);

setTimeout(startwork,600);

}

bb.scrollTop++;


if(bb.scrollTop>=gg.offsetHeight)

{

bb.scrollTop=0;

}

},50)

bb.onmouseover=function(){

clearInterval(bbk);

}

bb.onmouseout=function(){

startwork();

}

}

? ??

? </script>

</body>

</html>


正在回答

4 回答

還一種不用清除器的方法,在函數內部開頭用無限定時器調用自身,外部執行這個函數就行

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

你沒有消除定時器,每隔一定時間重新掉一次,上次還沒執行完,這次又疊加上去了,一般用定時器都要加相應的清除器在函數頭部清除

0 回復 有任何疑惑可以回復我~
		
var?gg?=?document.getElementById('con1');
		var?cc?=?document.getElementById('con2');
		var?bb?=?document.getElementById('gundongbody');
		cc.innerHTML?=?gg.innerHTML;
		mydd?=?setTimeout(startwork,?600);

		function?startwork()?{
			var?gg?=?document.getElementById('con1');
			var?cc?=?document.getElementById('con2');
			var?bb?=?document.getElementById('box');
			bbk?=?setInterval(function?()?{
				if?(bb.scrollTop?%?28?==?0)?{
					clearInterval(bbk);
					setTimeout(startwork,?600);
				}
				bb.scrollTop++;

				if?(bb.scrollTop?>=?gg.offsetHeight)?{
					bb.scrollTop?=?0;
				}
			},?50)
		}

		bb.onmouseover?=?function?()?{
			clearInterval(bbk);
		}
		bb.onmouseout?=?function?()?{
			startwork();
		}

再試試,我驗證的話是沒有越滾越快的

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

慕粉1847419605

是沒有越滾越快呀但是也不停了大哥。局部變量外面用不了了。兩個都失效了
2017-01-09 回復 有任何疑惑可以回復我~
bb.onmouseover=function(){
clearInterval(bbk);
}
bb.onmouseout=function(){
startwork();
}

把這兩行代碼從startWork()函數體中拿出來就可以了, 不這樣做應該是會造成定時器沖突導致clearInterval()沒有辦法清楚全部的定時器

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

qq_浮世_4 提問者

拿出來結果還是一樣的呀
2016-12-31 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
信息滾動效果制作
  • 參與學習       47740    人
  • 解答問題       333    個

萌妹子帶您快速學習滾動效果,掌握無縫滾動和歇間性滾動的制作方法

進入課程

為什么鼠標不停上下移動,滾動就會越來越快

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

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

幫助反饋 APP下載

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

公眾號

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