漫谈 定时器setTimeout()和setInterval()

setTimeout(fn,millisec)

用于在指定的毫秒数后调用函数或计算表达式,只执行一次。
示例:

<html>
    <head>
        <title></title>
    </head>
    <body>
        <script type="text/javascript">
        // 3000毫秒后调用内部的匿名函数,注意只执行一次
        setTimeout(function(){
        	alert("aa");
        },3000);
            </script>
    </body>
</html>

结果:3秒后显示
在这里插入图片描述

setInterval(fn,millisec)

可按照指定的周期(以毫秒计)来调用函数或计算表达式,循环执行多次.
示例:

<html>
    <head>
        <title></title>
    </head>
    <body>
        <script type="text/javascript">
        // 每隔200毫秒后调用一次函数
         setInterval启动的时候 将句柄 赋值给一个变量
         var timer=setInterval(function(){
        	console.log("aa");
        },200);
        //function stop(){
        //clearInterval(timer);
        //}
         </script>
    </body>
</html>

结果:
在这里插入图片描述

定时清除函数

  • clearInterval( timer ) 方法
    可取消由 setInterval() 设置的 timeout
  • clearTimeout( timer ) 方法
    可取消由 setTimeout() 方法设置的 timeout
    示例:
<html>
    <head>
        <title></title>
    </head>
    <body>
        <script type="text/javascript">
        // 每隔2000毫秒后调用一次函数
        // setInterval启动的时候 将句柄 赋值给一个变量
        var timer=setInterval(function(){
        	console.log("aa");
        },200);
        function stop(){
        clearInterval(timer);
        }
            </script>
    </body>
</html>

练习:页面制作十秒倒计时效果

<html>
<head>
<title> setTimeout</title>
</head>
<body>
<h1>10</h1>
<input type="button" value="开始" onclick="start()" />
<input type="button" value="停止" onclick="stop()" />
<script type="text/javascript">
// 1 获取元素
var h=document.getElementsByTagName("h1")[0];
var timer=null;
// 2 操作元素
function start(){
	if(timer==null){
		timer=setInterval(function(){
			var t=h.innerHTML;
			if(t==0){
				// 关闭setIterval
					stop();
				// 弹框
					alert("时间到!");
			}else{
				t--;
				h.innerHTML=t;
			}	
		},1000);
	}
}
function stop(){
	if(timer!=null){
		h.innerHTML=10;
		clearInterval(timer);
		timer=null;
	}
}
</script>
</body>
</html>

在这里插入图片描述
练习:页面制作10秒计时器:

<html>
    <head>
        <title>setTimeout</title>
    </head>
    <body>

        <h1>0</h1>
        <input type="button" value="开始" onclick="start()">
        <input type="button" value="暂停" onclick="pause()">
        <input type="button" value="停止" onclick="stop()">

        <script type="text/javascript">
           
        //1.获取元素
        var h=document.getElementsByTagName("h1")[0];
        var timer=null;
        //2.操作元素
        function start(){
	        if(timer==null){
		        timer=setInterval(function(){
			    var t=h.innerHTML;
				t++;
				h.innerHTML=t;	
        },1000);
	    }
    }
        function pause(){
            if(timer!=null){
                clearInterval(timer);
                timer=null;
            }
        }
       function stop(){
            pause();
            h.innerHTML=0;           
       }     
            </script>
    </body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值