深入理解setTimeout函数和setInterval函数
前几天学了js,看到了两个非常有趣的函数,他们分别是setTimeout函数和setInterval函数,这两个函数能使网页呈现非常一些网页中比较常见的效果,比如说图片轮播,等一些非常好玩的效果。下面就来一起来了解这两个函数吧!
一setTimeout函数和setInterval函数的语法以及应用
1.setTimeout函数
定义和用法:setTimeout()方法用于在指定的毫秒数后调用函数或计算表达式。
语法:setTimeout(code,millisec);
参数:
code(必需):要调用的函数后要执行的JavaScript代码串。
millisec(必需):在执行代码前需等待的毫秒数。
提示:
setTimeout()只执行code一次。如果要多次调用,请使用setInterval()或者让code自身再次调用setTimeout()。
返回值
一个可以传递给Window.clearTimeout()从而取消对code的周期性执行的值。
既然setTimeout是一个定时器函数,那么就有一个一个函数来清理定时器,那我们就用到了clearTimeout函数。
clearTimeout(setTimeout()返回的ID值);
2.setInterval定义
setInterval()方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
setInterval()方法会不停地调用函数,直到clearInterval()被调用或窗口被关闭。由setInterval()返回的ID值可用作clearInterval()方法的参数。
语法
setInterval(code,millisec[,"lang"]);
参数code必需。要调用的函数或要执行的代码串。
millisec必须。周期性执行或调用code之间的时间间隔,以毫秒计
返回值
一个可以传递给Window.clearInterval()从而取消对code的周期性执行的值。
既然setTimeout是一个定时器函数,那么就有一个一个函数来清理定时器,那我们就用到了clearInterval()函数。
clearInterval()(setInterval()返回的ID值);
二.案例:
倒计时效果
<!DOCTYPEhtml>
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<title>倒计时效果</title>
<scripttype="text/ecmascript">
//使用js方式实现倒计时效果
vart1;
window.onload=function(){
//01定位到开始按钮返回一个dom对象
varbtns=document.getElementById('btnStart');
//02.给开始按钮注册单击事件
btns.onclick=function(){
//执行ssetInerval函数第一个参数要定时执行的函数,第二个参数该函数每个多少毫秒执行一次
t1=setInterval(start,1000);
}
//03定位到停止按钮返回一个dom对象
varbtnst=document.getElementById('btnStop');
btnst.onclick=function(){
clearInterval(t1);
}
}
//要隔1秒执行的函数
functionstart(){
//01.获取div中的文本赋值给一个变量
vardivdom=document.getElementById('msg');
vardivnum=divdom.innerText;
//判断divnum的值是否为0
if(divnum>0){
divnum--;
//把减过的值重新赋值给divnum
divdom.innerText=divnum;
}
}
</script>
</head>
<body>
<inputtype="button"id="btnStart"value="开始"/>
<inputtype="button"id="btnStop"value="停止"/><br/>
<divid="msg">10</div>
</body>
</html>
背景图片切换:
<!DOCTYPEhtml>
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<title></title>
<scripttype="text/javascript">
varcount=1;//定义初始变量默认为第一张图片
window.onload=function(){
//使用定时器函数每隔一秒定义执行一次show函数
setInterval(show,1000);
}
//要执行的函数
functionshow(){
//如果图片到达最后一张(5张),就将下一张显示的图片改为第一张,如果没有到达最后一张就将显示下一张图片
if(count>5){
count=1;
}
else{
count++;
}
//获取id为myimg的dom对象
vardom=document.getElementById("myimg");
//改变img标签的src属性指向,改变图片
dom.src="image/"+count+".jpg"
}
</script>
</head>
<body>
<imgsrc="image/1.jpg"alt="AlternateText"width="200px"height="200px"id="myimg"/>
</body>
</html>
点名器
<!DOCTYPEhtml>
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<title></title>
<scripttype="text/javascript">
//定义一个数组保存该点名器中的基本数据
vardata=['张三','李四','王二','小陈','小张'];
vari=0;//声明一个初始变量默认让第一个人显示在页面上
vart1;
window.onload=function(){
//02.获取开始点名按钮的dom对象给该对象注册单击事件
vardom=document.getElementById("mybtn");
dom.onclick=function(){
//使用setInterval函数隔500毫秒调用一次result函数
t1=setInterval(start,500);
//该方法隔6秒他只调用一次
setTimeout(stop,6000);
}
//定义一个匿名函数把他赋值给一个变量result
varstart=function(){
//03获取h1标签对象,给h1标签的文本赋值
vardomh=document.getElementById("myh1");
domh.innerText=data[i%data.length];//替换已存在,元素值
i++;
}
//调用匿名函数
start();
varstop=function(){
//清除定时器
clearInterval(t1);
//弹出提示框点到的同学请作答
alert("请"+document.getElementById("myh1").innerText+"同学作答");
}
}
</script>
</head>
<body>
<h1id="myh1"></h1>
<buttonid="mybtn">开始点名</button>
</body>
</html>
通过上面的几个案例,我相信大家一点对这两个函数应该不陌生了。
以上这篇深入理解setTimeout函数和setInterval函数就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。