定时器

定时器的概念

我们每天早上会设置闹钟,而且都是提前设置好,然后到点了就会准时提醒,这就是延时执行的概念。
同时设置好的闹钟又分执行一次和重复执行。
执行一次的设置代码为 :
setTimeout();
有设置 那肯定就得有结束对吧 ,不然早晨的我们不是要被吵死了对吧。
清除设置好的定时器:
clearTimeout();
再提一下,定时器设置的是当前时间到执行时间之间的毫秒数。1000即为1s。

function web(){
console.log("闹钟");
}
var time = setTimeout(web,1000);
//这里就是这是1秒后执行这个函数,在控制台打印“闹钟”
clearTimeout(time);
//清除闹钟程序,也可理解成暂停闹钟。

有执行一次的定时器,那就必然也有重复执行多次的方式
设置为:
setInterval();
清除:
clearInterval();

定时器的设置方式

上述代码为第一种设置定时器的方式,
第二种方式为:

var time = setTimeout("web()",1000);

第三种方式为:

setTimeout(function web(){
console.log("闹钟");
},1000)

所达到的效果都是一样的,只是方式不一样而已。
清除自然也是和执行一次的方式的清除大同小异。

clearInterval(time);

实际上的运用

说到底,具体要怎么用呢,除了闹钟还能实现什么效果呢,举个小例子,定时实现随机切换盒子颜色、大小、位置;

<body>
			<button>开始</button>
			<button>停止</button>
			<div></div>
	<script>
		var div =document.getElementsByTagName("div")[0];
		var btn =document.getElementsByTagName("button");
        function Xun(){
			var wid=parseInt(Math.random()*800);
			var hei=parseInt(Math.random()*800);
			var top=parseInt(Math.random()*200);
			var lef=parseInt(Math.random()*200);
			var a =parseInt(Math.random()*255);
			var b =parseInt(Math.random()*255);
			var c =parseInt(Math.random()*255);
			div.style.width=wid+"px";
			div.style.height=hei+"px";
			div.style.marginLeft=lef+"px";
			div.style.marginTop=top+"px";
			div.style.backgroundColor='rgb(' + a + "," + b + "," + c + ')';
		 }
	           var time =null;
	        btn[0].onclick=function(){
	        	clearInterval(time);//每一次执行开始时,都先清除定时器
	           time =setInterval(Xun,1000);
	        }
			btn[1].onclick=function(){
	           	clearInterval(time);
	        } 
	</script>
	</body>

如上代码所示,点击开始按钮,网页里就开始随机出现大小颜色位置都不一样的盒子,点击结束时,就可以停止改变。
但是还有一个bug,那就是多次点击开始按钮时会有bug,就是越来越快,并且无法停止,这个问题就只需要一行代码就可以解决。就是再每一次执行开始时,都先清除定时器,这样每一次点击都是重新开始。
如此,就达我们所需要的效果了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值