JS定时器原理及案例

news/2024/7/19 13:11:25 标签: javascript, js

JS定时器原理及案例

  • 前言
  • 一、定时器
  • 二、定时器的使用
    • 1.定时器
    • 2.清除定时器
  • 三、案例
    • 1.倒计时
    • 2.使用和清除定时器
    • 3.发送短信
  • 总结


前言

JS中定时器并不算难点,但是我还是拿出来讲,过于经典的案例往往是最为基础的知识点,仅供参考学习。


一、定时器

  1. setTimeout(code,millisec):只执行 code 一次。
  2. setInterval(code,millisec):会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。

定时器注释

  1. clearTimeout() :可取消由 setTimeout() 方法设置的 timeout。
  2. clearInterval() :可取消由 setInterval() 设置的 timeout。

定时器非常好理解,set就是定时器,clear就是清除定时器,timeout就是定时器只用一次,interval就是循环使用。

二、定时器的使用

1.定时器

代码如下(示例):

<body>
<script>javascript">
    function time() {
        alert('倒计时时间到')
    }
    var times = setTimeout(time,3000);
</script>
</body>

倒计时弹窗

2.清除定时器

<body>
<script>javascript">
    function time() {
        alert('倒计时时间到')
    }
    var times = setTimeout(time,3000);
    clearInterval(times);
</script>
</body>

setInterval()和cleaInterval()的原理也是一样的,我就不在这里写了

三、案例

1.倒计时

代码如下(示例):

    <style>
        div {
            margin: 200px;
        }

        span {
            display: inline-block;
            width: 40px;
            height: 40px;
            background-color: #333;
            font-size: 20px;
            color: #fff;
            text-align: center;
            line-height: 40px;
        }
    </style>
</head>

<body>
    <div>
        <span class="hour">1</span>
        <span class="minute">2</span>
        <span class="second">3</span>
    </div>
    <script>javascript">
        // 1. 获取元素
        var hour = document.querySelector('.hour'); // 小时的黑色盒子
        var minute = document.querySelector('.minute'); // 分钟的黑色盒子
        var second = document.querySelector('.second'); // 秒数的黑色盒子
        var inputTime = +new Date('2021-7-9 00:00:00'); // 返回的是用户输入时间总的毫秒数
        countDown(); // 我们先调用一次这个函数,防止第一次刷新页面有空白
        // 2. 开启定时器
        setInterval(countDown, 1000);

        function countDown() {
            var nowTime = +new Date(); // 返回的是当前时间总的毫秒数
            var times = (inputTime - nowTime) / 1000; // times是剩余时间总的秒数
            var h = parseInt(times / 60 / 60 % 24); //时
            h = h < 10 ? '0' + h : h;
            hour.innerHTML = h; // 把剩余的小时给 小时黑色盒子
            var m = parseInt(times / 60 % 60); // 分
            m = m < 10 ? '0' + m : m;
            minute.innerHTML = m;
            var s = parseInt(times % 60); // 当前的秒
            s = s < 10 ? '0' + s : s;
            second.innerHTML = s;
        }
    </script>
</body>

效果图如下:
倒计时效果图

2.使用和清除定时器

代码如下(示例):

<body>
<button class="begin">开启定时器</button>
<button class="stop">停止定时器</button>
<p></p> 
<script>javascript">
    var begin = document.querySelector('.begin');
    var stop = document.querySelector('.stop');
    var p  = document.querySelector('p');
    var timer = null; // 全局变量  null是一个空对象
    begin.addEventListener('click', function() {
        timer = setInterval(function() {
            p.innerHTML+='起飞!';
        }, 1000);
    })
    stop.addEventListener('click', function() {
        clearInterval(timer);
    })
</script>
</body>

效果图如下:
在这里插入图片描述

3.发送短信

代码如下(示例):

<body>
<label>
    手机号码:
    <input type="number">
</label>
<button>发送</button>
    <script>javascript">
        // 按钮点击之后,会禁用 disabled 为true 
        // 同时按钮里面的内容会变化, 注意 button 里面的内容通过 innerHTML修改
        // 里面秒数是有变化的,因此需要用到定时器
        // 定义一个变量,在定时器里面,不断递减
        // 如果变量为0 说明到了时间,我们需要停止定时器,并且复原按钮初始状态
        var btn = document.querySelector('button');
        var time = 3; // 定义剩下的秒数
        btn.addEventListener('click', function() {
            btn.disabled = true;
            var timer = setInterval(function() {
                if (time == 0) {
                    // 清除定时器和复原按钮
                    clearInterval(timer);
                    btn.disabled = false;
                    btn.innerHTML = '发送';
                } else {
                    btn.innerHTML = '还剩下' + time + '秒';
                    time--;
                }
            }, 1000);

        })
    </script>
</body>

效果图如下:
在这里插入图片描述

发送短信案例较为简单,我会在另一篇文章中更为详细的去使用定时器


总结

定时器的原理和案例都较为简单,但是在后面复杂的页面设计中,希望大家能够将其掌握,不要因为页面复杂而将定时器搞的复杂,这样就得不偿失了。

如果文章对你有帮助的话,请给我一个小小的点赞一波哦!每个赞和评论都是我编写文章的动力哦!


http://www.niftyadmin.cn/n/855590.html

相关文章

JS全选反选及节点操作实现收件箱案例

JS全选反选及节点操作实现收件箱案例前言一、全选反选之商品选择二、节点操作之留言板&#xff08;添加、删除&#xff09;三、综合案例1.收件箱2.文本上下移动添加及删除功能总结前言 JavaScript中的节点操作是一处重要的知识点&#xff0c;在很多的地方都有它的身影&#xf…

利用Python实现腾讯校园招聘状态查询

# _*_ coding:utf-8 -*-# filename:utf-8 import requests import timedef query_state(counter0):post_data {type:query_result,idcard: ,phone: }post_data[idcard] 身份证后四位post_data[phone] 1手机号r requests.post(http://m.join.qq.com/query/result,datapost_d…

JS实现验证码倒计时验证案例

JS实现验证码倒计时验证案例前言验证案例1.代码2.代码功能解析1.验证码2.验证3.倒计时总结前言 这是一个将验证和倒计时综合起来的案例&#xff0c;案例也不难理解&#xff0c;在页面的设计中&#xff0c;需要这样的代码时可直接套用&#xff0c;仅供参考学习。 验证案例 1.代…

【详细】Application生命周期简介

一、什么是Application&#xff1f; Android系统会为每个程序运行时创建一个Application类的对象且仅创建一个 &#xff08;例如&#xff1a;打开微信安卓系统会为微信创建一个Application对象&#xff0c;再打开微博安卓系统又会为微博创建一个Application对象&#xff09;&…

JS实现漂浮广告功能

JS实现漂浮广告功能前言一、漂浮广告案例前言 漂浮广告非常简单也是老案例了&#xff0c;在网页的设计中可直接拿去用&#xff0c;原理都是我之前文章所讲到的&#xff0c;如果有什么不明白的可以看看我之前的文章&#xff0c;仅供参考学习。 一、漂浮广告案例 我在这个案例里…

手把手教你-Android 广播机制

一&#xff0c;概述 广播&#xff08;广播&#xff09;机制用于进程/线程间通信&#xff0c;因此在我们应用程序内发出的广播&#xff0c;其他的应用程序应该也是可以收到的。广播分为广播发送和广播接收两个过程&#xff0c;其中广播接收者广播接收器便是Android的四大组件之…

JS实现轮播图点击切换、按钮切换功能

JS实现轮播图点击切换、按钮切换功能前言轮播图案例总结前言 轮播图的案例非常经典&#xff0c;写法也非常多&#xff0c;我在写一个自己用的比较多的写法&#xff0c;帮助大家理解&#xff0c;在网页的设计中&#xff0c;可以直接拿去用&#xff08;记得换图片路径哦&#xf…

JS中for循环中使用同一变量的方法及案例

JS中for循环中使用同一变量的方法及案例 for循环中加函数不能调用定义的变量&#xff1f;一个函数居然要加俩个变量&#xff0c;而且还没用&#xff1f;这不能忍&#xff0c;这篇文章是我整理如何使用for循环的同一变量&#xff0c;需要可直接复制使用。 问题 如何用js实现移…