1 回答

TA貢獻9條經(jīng)驗 獲得超1個贊
主要是這句的問題:?var time2=setTimeout(startscroll,2000);
這句是兩秒后調(diào)用startscroll函數(shù),但是當(dāng)在這兩秒內(nèi)你再移動鼠標離開元素觸發(fā)
area.onmouseout=function(){
clearInterval(time);
startscroll();
}
時,就會調(diào)用多次的startscroll函數(shù),這時time=setInterval(scrollUp,speed);這句多次賦值,會造成多個循環(huán)調(diào)用,而且time只會指向最后一次賦值的循環(huán)調(diào)用。所以后面的clearInterval(time);只能清除一次循環(huán)調(diào)用,而對之前的毫無作用。所以就會形成惡性循環(huán),越來越快。
解決方法:可以在賦值語句time=setInterval(scrollUp,speed);前加個清除循環(huán)語句:clearInterval(time);
既
function startscroll(){
clearInterval(time);
time=setInterval(scrollUp,speed);
area.scrollTop++;
}
添加回答
舉報