js实现的1小时内的自动倒计时(可以暂停计时、继续计时,重新计时)

js实现的任意天数的自动倒计时(可以暂停计时、继续计时,重新计时),其它功能模块函数可以自己添加;

<html>
    <body>
        <meta charset="utf-8">
        <div style="text-align: center;">
            <label>设置时间</label>
            <input id="t_d" type="text" placeholder="输入秒数" value=0  size="1">天
            <input id="t_h" type="text" placeholder="输入秒数" value=0  size="1">时
            <input id="t_m" type="text" placeholder="输入秒数" value=0  size="1">分
            <input id="t_s" type="text" placeholder="输入秒数" value=0  size="1">秒
        </div>
        <div style="text-align: center;">
               <div id='txt'></div>
            <button οnclick="stop();">停止挂机</button>
            <button id="btncontiue" disabled="false" οnclick="start();">继续挂机</button>
            <button οnclick="restart();">重新启动</button>
        </div>
        <script language=javascript>
            var millsec=1000;   //刷新时间(毫秒数),减少刷新时间变快,增大刷新时间变慢,1000则是正常1秒刷新一次;
            
            var int = self.setInterval("clock()", millsec);
            var sec; //初始总秒数(1-3600)
            var color = "blue"; //显示颜色控制
            var xx; //秒
            var yy; //分
            var zz; //时
            var flg; //起停标志位
            
            
            function setTotaltime(){
                sec=0;
                day=document.getElementById('t_d').value;
                hour=document.getElementById('t_h').value;
                min=document.getElementById('t_m').value;
                sec1=document.getElementById('t_s').value;
                sec=parseInt(sec1)+parseInt(min)*60+parseInt(hour)*60*60+parseInt(day)*24*60*60;
            }            
            
            function restart() {
                setTotaltime();
                zz = 0;
                xx = (sec % 60);
                yy = parseInt(sec / 60);
                if (yy >= 60) {
                    yy = (yy % 60);
                    zz = parseInt(sec / 3600);
                }
                flg = 1;
                document.getElementById("btncontiue").disabled = true;
            }

            function stop() {
                flg = 0;
                document.getElementById("btncontiue").disabled = false;
            }

            function start() {
                flg = 1;
                document.getElementById("btncontiue").disabled = true;
            }

            function clock() {
                if (flg == 1) {
                    if (xx == 0 && yy >= 1) {
                        xx = 60;
                        yy--;
                    }
                    if (xx == 0 && yy == 0 && zz >= 1) {
                        xx = 60;
                        yy = 59;
                        zz--;
                    }
                    if (xx == 0 && yy == 0 && zz == 0) {
                        xx = (sec % 60);
                        yy = parseInt(sec / 60);
                        if (yy > 60) {
                            yy = (yy % 60);
                            zz = parseInt(sec / 3600);
                        }
                    }
                    
                    if (xx<1){xx=0;} else {xx--;}
                    
                    m = yy;
                    if (yy < 10) {
                        m = '0' + yy;
                    }
                    s = xx;
                    if (xx < 10) {
                        s = '0' + xx;
                    }
                    z = zz;
                    if (zz < 10) {
                        z = '0' + zz;
                    }
                    document.getElementById("txt").innerHTML = '<h1  style="color:' + color + '">剩余时间:' + z + ':' + m + ':' + s + '</h1>';
                } else {
                    document.getElementById("txt").innerHTML = '<h1  style="color:' + color + '">剩余时间:--:--:--</h1>';
                }
            }
            restart();
        </script>
    </body>
</html>

猜你喜欢

转载自blog.csdn.net/goldsway/article/details/100047227
今日推荐