Interval速度叠加问题

如是我聞 发布于 2015/01/24 15:47
阅读 546
收藏 0
问题一:为什么要定义var time变量。
问题二:每次点击rand按钮为什么会出现速度的叠加问题。
谢谢。

<body>
<button id="red" onclick="change(this)">red</button>
<button id="green" onclick="change(this)">green</button>
<button id="blue" onclick="change(this)">blue</button>
<button id="rand" onclick="change(this)">rand</button>
<button id="stop" onclick="change(this)">stop</button>
<script>
//定义定时器变量
var time = null;
function change(args){
console.log(args);
if(args.id == 'rand'){
clearInterval(time);
time = setInterval(function(){
document.body.style.backgroundColor = 'rgb('+ Math.floor(Math.random()*256)+','+Math.floor(Math.random()*256)+','+Math.floor(Math.random()*256)+')';
},1000);
}else if(args.id == 'stop'){
clearInterval(time);
}else{
document.body.style.backgroundColor = args.id;
}
}

</script>
</body>

加载中
0
YueZheng
YueZheng

问题一: 从下面的代码来看,time变量赋值为setInterval的返回值(即循环的ID)。这样做的目的是以便控制setInterval循环的停止,如果不把interval的ID记录下来的话,是没办法使循环停下来的(除非关闭页面);

问题二:不清楚你说的速度叠加是什么意思。从代码上来看setInterval的时间间隔是固定的一秒。

返回顶部
顶部