栄篱
2016-03-10 16:33
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)
}
使用setInterval 会返回一个数值来标记这个setInterval而且不是人为规定的数值,用timer来标记这个数值。用clearInterval来清除这个setInterval 不然setInterval会不断以一个间隔来重复触发里面的function,例如不断赋给一个变量一个相同的值。消耗内存。最简单的方面不清除定时器的叠加会让setInterval不断叠加,比如speed是每秒钟1PX移动,你重复触发5次就变成了每秒钟5PX移动,而且无法停止。至于函数为什么没有参数,你可以在回去复习一下JS的语法,入门的就可以了。
防止出现多个定时器
JS动画效果
113925 学习 · 1443 问题
相似问题
回答 2
回答 2
回答 1
回答 2
回答 1