深入理解setTimeout函数和setInterval函数


Posted in Javascript onMay 20, 2016

 前几天学了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函数就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
IE autocomplete internet explorer's autocomplete
Jun 30 Javascript
利用jq让你的div居中的好方法分享
Nov 21 Javascript
12行javascript代码绘制一个八卦图
Apr 02 Javascript
jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码
Aug 21 Javascript
javascript超过容器后显示省略号效果的方法(兼容一行或者多行)
Jul 14 Javascript
类似于QQ的右滑删除效果的实现方法
Oct 16 Javascript
JS库之ParticlesJS使用简介
Sep 12 Javascript
利用javascript如何随机生成一定位数的密码
Sep 22 Javascript
为jquery的ajax请求添加超时timeout时间的操作方法
Sep 04 jQuery
vue中v-text / v-html使用实例代码详解
Apr 02 Javascript
微信小程序3种位置API的使用方法详解
Aug 05 Javascript
javascript实现倒计时提示框
Mar 02 Javascript
JavaScript基础教程——入门必看篇
May 20 #Javascript
jQuery选择器及jquery案例详解(必看)
May 20 #Javascript
Jquery $when done then的用法详解
May 20 #Javascript
jQuery添加和删除输入文本框标签代码
May 20 #Javascript
jQuery通过deferred对象管理ajax异步
May 20 #Javascript
Bootstrap3学习笔记(三)之表格
May 20 #Javascript
快速获取/设置iframe内对象元素的几种js实现方法
May 20 #Javascript
You might like
如何做到多笔资料的同步
2006/10/09 PHP
php md5下16位和32位的实现代码
2008/04/09 PHP
php相当简单的分页类
2008/10/02 PHP
脚本收藏iframe
2006/07/21 Javascript
jquery isEmptyObject判断是否为空对象的函数
2011/02/14 Javascript
php图像生成函数之间的区别分析
2012/12/06 Javascript
jQuery弹出(alert)select选择的值
2013/04/21 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
2013/10/29 Javascript
js substring从右边获取指定长度字符串(示例代码)
2013/12/23 Javascript
JavaScript将当前时间转换成UTC标准时间的方法
2015/04/06 Javascript
动态加载jQuery的两种方法实例分析
2015/07/17 Javascript
javaScript语法总结
2016/11/25 Javascript
浅谈Koa服务限流方法实践
2017/10/23 Javascript
jQuery实现标签子元素的添加和赋值方法
2018/02/24 jQuery
vue移动端路由切换实例分析
2018/05/14 Javascript
5分钟快速看懂ES6中的反射与代理
2019/12/19 Javascript
[01:15:44]首部DOTA2纪录片今日23时全网上映
2014/03/19 DOTA
[02:41]DOTA2英雄基础教程 亚巴顿
2014/01/02 DOTA
利用Python实现命令行版的火车票查看器
2016/08/05 Python
python抓取文件夹的所有文件
2018/02/27 Python
Pandas中把dataframe转成array的方法
2018/04/13 Python
Python代码块及缓存机制原理详解
2019/12/13 Python
Django 解决阿里云部署同步数据库报错的问题
2020/05/14 Python
Python简单实现词云图代码及步骤解析
2020/06/04 Python
使用TensorBoard进行超参数优化的实现
2020/07/06 Python
详解CSS3的opacity属性设置透明效果的用法
2016/05/09 HTML / CSS
HTML5新特性之语义化标签
2017/10/31 HTML / CSS
世界上最大的街头服饰网站:Karmaloop
2017/02/04 全球购物
北美最大的参茸药食商城:德成行
2020/12/06 全球购物
岗位职责定义及内容
2013/11/08 职场文书
制药工程专业个人求职自荐信
2014/01/25 职场文书
做一个有道德的人活动方案
2014/08/25 职场文书
水电维修专业推荐信
2014/09/06 职场文书
爱岗敬业事迹材料
2014/12/24 职场文书
运动会跳远广播稿
2015/08/19 职场文书
方法汇总:Python 安装第三方库常用
2022/04/26 Python