深入理解setTimeout函数和setInterval函数
来源: 阅读:656 次 日期:2016-06-25 14:39:00
温馨提示: 小编为您整理了“深入理解setTimeout函数和setInterval函数”,方便广大网友查阅!

下面小编就为大家带来一篇深入理解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值);

二.案例:

倒计时效果

<!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/ecmascript">

    //使用js方式实现倒计时效果

    var t1;

    window.onload = function () {

      //01定位到开始按钮返回一个dom对象

      var btns = document.getElementById('btnStart');

      //02.给开始按钮注册单击事件

      btns.onclick = function () {

        //执行ssetInerval函数第一个参数要定时执行的函数,第二个参数该函数每个多少毫秒执行一次

        t1= setInterval(start, 1000);

      }

      //03定位到停止按钮返回一个dom对象

      var btnst = document.getElementById('btnStop');

      btnst.onclick = function () {

        clearInterval(t1);

      }

    }

    //要隔1秒执行的函数

    function start() {

      //01.获取div中的文本赋值给一个变量

      var divdom = document.getElementById('msg');

      var divnum = divdom.innerText;

      //判断divnum的值是否为0

      if (divnum > 0) {

        divnum--;

        //把减过的值重新赋值给divnum

        divdom.innerText = divnum;

      }

    }

  </script>

</head>

<body>

  <input type="button" id="btnStart" value="开始" />

  <input type="button" id="btnStop" value="停止" /><br />

  <div id="msg">10</div>

</body>

</html>

背景图片切换:

<!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 count = 1;//定义初始变量默认为第一张图片

    window.onload = function () {

      //使用定时器函数每隔一秒定义执行一次show函数

      setInterval(show,1000);

    }

    //要执行的函数

    function show() {

      //如果图片到达最后一张(5张),就将下一张显示的图片改为第一张,如果没有到达最后一张就将显示下一张图片

      if (count > 5) {

        count = 1;

      }

      else {

        count++;

      }

      //获取id为myimg的dom对象

      var dom = document.getElementById("myimg");

      //改变img标签的src属性指向,改变图片

      dom.src = "image/"+count+".jpg"

    }

  </script>

</head>

<body>

  <img src="image/1.jpg" alt="Alternate Text" width="200px" height="200px" id="myimg" />

</body>

</html>

点名器:

<!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 data = ['张三', '李四', '王二', '小陈', '小张'];

    var i = 0;//声明一个初始变量默认让第一个人显示在页面上

    var t1;

    window.onload = function () {

      //02.获取开始点名按钮的dom对象给该对象注册单击事件

      var dom = document.getElementById("mybtn");

      dom.onclick = function () {

        //使用setInterval函数隔500毫秒调用一次result函数

        t1 = setInterval(start, 500);

        //该方法隔6秒他只调用一次

        setTimeout(stop,6000);

      }

      //定义一个匿名函数把他赋值给一个变量result

       var start= function() {

        //03获取h1标签对象,给h1标签的文本赋值

        var domh = document.getElementById("myh1");

        domh.innerText = data[i % data.length];//替换已存在,元素值

        i++;

       }

      //调用匿名函数

       start();

       var stop = function () {

         //清除定时器

         clearInterval(t1);

         //弹出提示框点到的同学请作答

         alert("请" + document.getElementById("myh1").innerText+"同学作答");

       }

    }

</script>

</head>

<body>

  <h1 id="myh1"></h1>

<button id="mybtn"> 开始点名</button>

</body>

</html>

通过上面的几个案例,我相信大家一点对这两个函数应该不陌生了。

以上这篇深入理解setTimeout函数和setInterval函数就是小编分享给大家的全部内容了,希望能给大家一个参考

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map