利用JavaScript实现秒表功能

2022年12月31日12:55:51
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div>00:00:00:00</div>
    <button >开始</button>
    <button disabled>暂停</button>
    <button disabled>继续</button>
    <button disabled>重置</button>
    <script>
        // 秒表功能分析
        // 核心思路:
        //   定义一个变量,根据定时器,每秒执行一次,每次执行++自增操作
        //               变量存储的数值,就会每秒+1
        //   现在需要的记录效果,是每0.01秒,也就是10毫秒执行一次
        //   根据累计的数值,执行进位 ms 如果达到 100,就是1秒
        //   如果 秒 达到 60 就是 1分钟
        //   如果 分钟 达到 60 就是 1小时


        // 获取按钮的标签对象
        var oBtnStart = document.querySelectorAll('button')[0];
        var oBtnPause = document.querySelectorAll('button')[1];
        var oBtnContinue = document.querySelectorAll('button')[2];
        var oBtnReset = document.querySelectorAll('button')[3];
        var hour = minutes = seconds = millisecond = 0;

        // 定义存储 时 分 秒 毫秒 字符串的变量
        // 如果直接在 millisecond seconds minutes hour 变量上进行 拼接操作,会影响 ++操作的执行
        // 单独的建立变量,来存储累加时间的执行结果
        var ms = '';
        var s = '';
        var m = '';
        var h = '';

        // 因为定时器,是定义在函数内部,
        // 必须定义一个全局变量,来存储定时器
        // 在函数外部可以调用,终止定时器
        var time = 0;
        
        // 获取div标签对象
        var oDiv = document.querySelector('div');


        //  开始按钮
        oBtnStart.onclick = function(){
            // 点击开始按钮,执行函数,执行秒表计时
            timer();
            oBtnStart.disabled = true;
            oBtnPause.disabled = false;
            oBtnContinue.disabled = true;
            oBtnReset.disabled = true;
        }
        //  暂停按钮
        oBtnPause.onclick = function(){
            // 点击暂停按钮,清除定时器,终止秒表执行
            clearInterval(time);
            oBtnStart.disabled = true;
            oBtnPause.disabled = true;
            oBtnContinue.disabled = false;
            oBtnReset.disabled = false;
        }
        //  继续按钮
        oBtnContinue.onclick = function(){
            // 点击继续按钮,继续执行定时器
            timer();
            oBtnStart.disabled = true;
            oBtnPause.disabled = false;
            oBtnContinue.disabled = true;
            oBtnReset.disabled = true;

        }
        //  重置按钮
        oBtnReset.onclick = function(){
            // 点击重置按钮,将所有的数据,都恢复到0的状态
            // 所有变量存储的数据都是 0 , div中的内容,也恢复到0
            hour = minutes = seconds = millisecond = 0;
            oDiv.innerHTML = '00:00:00:00'
            oBtnStart.disabled = false;
            oBtnPause.disabled = true;
            oBtnContinue.disabled = true;
            oBtnReset.disabled = true;
        }

        //  计时函数
        function timer(){
            // 赋值操作,将定时器,存储在全局作用域变量中
            time = setInterval(function(){
                millisecond++;
                if( millisecond == 100){
                    seconds++;
                    millisecond = 0;
                }
                if( seconds == 60 ){
                    minutes++;
                    seconds = 0;
                }
                if( minutes == 60 ){
                    hour++;
                    minutes = 0;
                }

            //  补零操作
            // 如果记录的时间小于0,要做补零操作
                if( millisecond < 10 ){
                    ms = '0' + millisecond; 
                }else{
                    ms = millisecond; 
                }
                if( seconds < 10 ){
                    s = '0' + seconds; 
                }else{
                    s = seconds; 
                }
                if( minutes < 10 ){
                    m = '0' + minutes; 
                }else{
                    m = minutes; 
                }
                if( hour < 10 ){
                    h = '0' + hour; 
                }else{
                    h = hour; 
                }
                // 每次执行,返回一个记录时间的字符串
                // 将这个字符串,写入到div中
                oDiv.innerHTML = ` ${h}:${m}:${s}:${ms} `
            },10);
        }

    </script>
</body>
</html>

实现效果:
利用JavaScript实现秒表功能
当点击开始时:
利用JavaScript实现秒表功能
当点击暂停时:
利用JavaScript实现秒表功能
当点击继续时:
利用JavaScript实现秒表功能

  • 作者:ab_dk
  • 原文链接:https://blog.csdn.net/ab_dk/article/details/105256795
    更新时间:2022年12月31日12:55:51 ,共 2242 字。