JS---定时器

一、定时器方法

1.1 设置定时器的方法

        1. setInterval() :(间隔多少时间后,去执行某些事情,是多次调用)

        按照指定的周期(以毫秒计)来调用函数或计算表达式。方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭

示例代码:

// 周期性定时器
      //setInterval(回调函数,周期时间 毫秒数,参数1,参数2...)
      // 参数1,参数2... 都是给回调函数传参
      //释放定时器
      clearInterval(timer);
      timer = null;
      
//示例代码
        //1.先创建一个变量,未来要接收定时器
        var timer = null;
        var n = 0;
        var h1 = document.querySelector("h1");
        //2.使用定时器
        timer = setInterval(() => {
          n++;
          h1.innerHTML = "标题" + n;
          //3.想要停止定时器--一般加一个判断条件
          if (n >= 5) {
            clearInterval(timer);
            timer = null;
          }
        }, 500);

        2. setTimeout() :(一定的时间后,去执行某些事情,是单次调用)

        在指定的毫秒数后调用函数或计算表达式。

示例代码:

// 一次性定时器
      //setTimeout(回调函数,周期时间 毫秒数,参数1,参数2...)
      //参数1,参数2... 都是给回调函数传参
      //释放定时器
      clearTimeout(timer);
      timer = null;
      
//示例代码
      //1.先创建一个变量,未来要接收定时器
        var timer = null;
        //2.使用定时器
        timer = setTimeout(
          (n, m) => {
            console.log(n, m);
            var h1 = document.getElementsByTagName("h1")[0];
            h1.innerHTML = "你好";
            //3.使用完成后释放
            clearTimeout(timer);
            timer = null;
          },
          1000,
          10,
          20
        );

1.2 移除定时器的方法

        1. clearInterval:取消由 setInterval() 函数设定的定时执行操作。

        2. clearTimeout:方法可取消由 setTimeout() 方法设置的定时操作。

二、 定时器的参数说明、

// 定时器可以传递多个参数:
// 1、执行的函数 
// 2、时间 
// 3、后面的参数就是执行函数在执行的时候传递的实参
setTimeout(function(num,s,m){
  console.log(num,s,m);
},1000,2,3,6);

注意:

定时器是异步任务,只要当咱们同步代码执行完毕之后,才能执行。

定时器是有返回值的,返回值代表定时器处于当前页面中的第几个。

三、练习

题目:倒计时案例

练习必备知识点:

        Math.random() 获取0~1 之间的随机数(大于等于0,小于1)
        获取n 到m 之间的随机数:Math.random()*(m-n)+n
        min ≤ r ≤ max :  Math.round(Math.random() * (max - min)) + min
        min﹤r ≦ max  :  Math.ceil(Math.random() * (max - min)) + min
        min≦ r ﹤ max :  Math.floor(Math.random() * (max - min)) + min
        获取N-M的随机数 parseInt(Math.random() * (M - N + 1) +  N)

示例代码:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      h1 {
        text-align: center;
      }
    </style>
  </head>
  <body>
    <h1>
      <span>距离2024-08-18 18:00:00的时间:</span>
      <strong id="clock">XXXX</strong>
    </h1>
    <script>
      var endDate = new Date("2024-08-18 18:00:00");

      function clockTime() {
        var nowDate = new Date();
        //不需要将时间转为毫秒数相减
        var diffTime = endDate - nowDate; //毫秒数
        if (diffTime <= 0) {
          //停止定时器
          clearInterval(timer);
          timer = null;
          return "倒计时结束";
        }
        var day = Math.floor(diffTime / (24 * 60 * 60 * 1000));
        var hours = Math.floor((diffTime / (60 * 60 * 1000)) % 24);
        var minutes = Math.floor((diffTime / (60 * 1000)) % 60);
        var seconds = Math.floor((diffTime / 1000) % 60);
        //day---》0   day>0
        var str = `${
          day > 0 ? day + "天," : ""
        } ${hours}时${minutes}分${seconds}秒`;
        return str;
      }

      clock.innerHTML = clockTime();

      var timer = setInterval(() => {
        clock.innerHTML = clockTime();
      }, 1000);
    </script>
  </body>
</html>

页面展示:

展示的页面倒计时会一直跳动,并且在结束之后会出现“倒计时结束”!

四、结语

总结不易,留下你的足迹吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值