為什么鼠標不停上下移動,滾動就會越來越快
<!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>
2017-05-06
還一種不用清除器的方法,在函數內部開頭用無限定時器調用自身,外部執行這個函數就行
2017-05-06
你沒有消除定時器,每隔一定時間重新掉一次,上次還沒執行完,這次又疊加上去了,一般用定時器都要加相應的清除器在函數頭部清除
2016-12-31
再試試,我驗證的話是沒有越滾越快的
2016-12-31
把這兩行代碼從startWork()函數體中拿出來就可以了, 不這樣做應該是會造成定時器沖突導致clearInterval()沒有辦法清楚全部的定時器