清除定时器的叠加有什么用?

来源:2-2 JS透明度动画

栄篱

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)

}


写回答 关注

2回答

  • lawrence_lai
    2016-03-10 17:40:12
    已采纳

    使用setInterval 会返回一个数值来标记这个setInterval而且不是人为规定的数值,用timer来标记这个数值。用clearInterval来清除这个setInterval 不然setInterval会不断以一个间隔来重复触发里面的function,例如不断赋给一个变量一个相同的值。消耗内存。最简单的方面不清除定时器的叠加会让setInterval不断叠加,比如speed是每秒钟1PX移动,你重复触发5次就变成了每秒钟5PX移动,而且无法停止。至于函数为什么没有参数,你可以在回去复习一下JS的语法,入门的就可以了。



    栄篱

    非常感谢!

    2016-03-19 22:02:28

    共 2 条回复 >

  • 不惧亢龙
    2016-03-15 23:33:59

    防止出现多个定时器

JS动画效果

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

113925 学习 · 1443 问题

查看课程

相似问题