清除定時器的疊加有什么用?
ar timer=null;
var apha=30;
function changeColor(target){
clearInterval(timer);//就這句代碼不懂
var box1=document.getElementById('box1');
timer=setInterval(function(){//為什么這里不要參數
var speed=0;
if(apha>target)
{
speed=-5;
}else{
speed=5;
}
if(apha==target)//什么條件呢
{
clearInterval(timer);
}else{
apha+=speed;
box1.style.filter="alpha(opacity:'+apha+')";
box1.style.opacity=apha/100;
}
},20)
}
2016-03-10
使用setInterval 會返回一個數值來標記這個setInterval而且不是人為規定的數值,用timer來標記這個數值。用clearInterval來清除這個setInterval 不然setInterval會不斷以一個間隔來重復觸發里面的function,例如不斷賦給一個變量一個相同的值。消耗內存。最簡單的方面不清除定時器的疊加會讓setInterval不斷疊加,比如speed是每秒鐘1PX移動,你重復觸發5次就變成了每秒鐘5PX移動,而且無法停止。至于函數為什么沒有參數,你可以在回去復習一下JS的語法,入門的就可以了。
2016-03-15
防止出現多個定時器