用js/javascript实现一个简单的计时器小案例

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <!-- 给div样式 -->

    <style>

        *{margin: 0;padding: 0;}

        div{

            width: 300px;

            height: 40px;

            font-size: 30px;

            background: black;

            color: white;

            text-align: center;

            line-height: 40px;

        }

    </style>

</head>

<body>

    <div>00:00:00</div>

    <button>开始</button>

    <button>暂停</button>

    <button>重置</button>

    <script>

        // 对存在标签进行获取

        var oDiv = document.querySelector('div')

        var oBtn1 = document.querySelectorAll('button')[0];

        var oBtn2 = document.querySelectorAll('button')[1];

        var oBtn3 = document.querySelectorAll('button')[2];

        // 分别设定计时器的时 分 秒的变量

        var h = 0 ;

        var m = 0 ;

        var s = 0 ;

        //定义变量time 用于区分计时器

        var time = 0;

        // 定义一个 bool 值 用于处理多个计时器同时产生的情况

        var bool = true;

        // 为开始button绑定click事件 作用:开始计时

        // 点击开始button  开始计时  并实现一个计时简单的累加

        oBtn1.addEventListener('click',function(){

            // 因为定时器较为特殊 若未作处理 每点击开始按钮一次均会产生 多余的定时器 从而影响我们函数正常的执行

            // 设定以下if判断操作后  无论点击多少  均只会产生一个定时器

            // 此方法也是目前较为常见的方法之一

            if(bool){

                bool = false

            }else{

                return;

            }

            

            // 设定定时器  设定原理为 每秒执行一次 秒数 的累加

            // 并将计时器的位置存放于变变量 time 中

             time = setInterval(function(){

                s++;

            if(s ===60){

                m++

                s = 0;

            }

            if(m===60){

                h++;

                m = 0;

            }

            // 将累加得来的时间均写入div标签中 , 同时执行每秒写入一次  以达到刷新的效果

            oDiv.innerHTML = `${h < 10 ? '0' + h : h }:${m < 10 ? '0' + m : m }:${s < 10 ? '0' + s : s }`

            },1000)

        })


 

        // 为暂停button绑定 click事件   作用:暂停计时器

        oBtn2.addEventListener('click',function(){

            // 清楚计时器  以达到暂停 效果的作用

            // 并将bool值设置为 ture 将值重新传回全局作用域的 bool值  方便重新判断定位器

            clearInterval(time);

            bool = true;

        })

        

        // 为清楚button绑定 click 事件   作用:将 h m s 重置为 0

        oBtn3.addEventListener('click',function(){

            h = 0;

            m = 0;

            s = 0;

            oDiv.innerText = '00:00:00';

        })

        // @码上成功~ 

    </script>

</body>

</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值