什么是setTimeout函数和setInterval函数?
我们一般在浏览网页的时候,一般都会有图片轮播等,一些比较好玩的特效,接下来我就给大家讲讲这俩个函数!
一setTimeout函数和setInterval函数的语法以及应用
1.setTimeout函数
定义和用法:setTimeout()方法用于在指定的毫秒数后调用函数或计算表达式。
语法:setTimeout(code,millisec);
参数:
code (必需):要调用的函数后要执行的 JavaScript 代码串。
millisec(必需):在执行代码前需等待的毫秒数。
提示:
setTimeout() 只执行 code 一次。如果要多次调用,请使用 setInterval() 或者让 code 自身再次调用 setTimeout()。
既然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值);
下面呢我给大家
二 案例
1.背景图片切换
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>图片轮播</title> <script type="text/javascript"> //定义初始变量默认为第一张图片 var num = 1; //要执行的函数 function myfunction() { //判断如果没有到达最后一张就将显示下一张图片,如果图片到达最后一张(5张),就将下一张显示的图片改为第一张 if (num < 5) { num++; } else { num = 1; } //获取id为myimg的dom对象 var dom = document.getElementById("myimg"); //改变img标签的src属性指向,改变图片 dom.src = 'images/' + num + '.jpg'; } //使用定时器函数每隔一秒定义执行一次myfunction函数 setInterval(myfunction, 1000); </script> </head> <body> <img src="images/1.jpg" width="960px" height="540px" id="myimg" /> </body> </html>
2.计时器
<!DO CTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <script type="text/javascript"> //去除变量的值 window.onload = function () { var t; //锁定开始按钮 var btnStart = document.getElementById("btnStart"); //锁定开始按钮 var btnStop = document.getElementById("btnStop"); //给开始按钮注册单击事件 btnStop.onclick = function () { clearInterval(t); } //给开始按钮注册单击事件 btnStart.onclick = function () { //执行ssetInerval函数第一个参数要定时执行的函数,第二个参数该函数每个多少毫秒执行一次 t = setInterval(myfunction, 1000); } } function myfunction() { //获取div中的文本赋值给一个变量 var dom = document.getElementById("msg"); var num = dom.innerText; //判断num的值是否为0 if (num>0) { num--; } dom.innerText = num; } </script> </head> <body> <input type="button" id="btnStart" value="开始"/> <input type="button" id="btnStop" value="停止" /> <div id="msg">10</div> </body> </html>
阅读过以上代码,大家应该对setTimeout函数和setInterval函数有了一些了解吧.
谢谢大家阅读,喜欢的,不喜欢的都点个关注吧!