计时器的两种原生写法

方法一:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>计时器</title>
    <style type="text/css">
    *{margin:0;padding:0;}
    .count{
        width:600px;
        height:320px;
        margin:100px auto;
        background: pink;
        text-align: center;
        box-shadow: 7px 7px 10px #999;
    }
    .bt{
        width:200px;
        height:80px;
        line-height:80px;
        margin:0 auto;
        font-size:48px;
    }
    #txt{
        width:400px;
        height:80px;
        margin:10px auto;
        text-align: center;
        padding-top:40px;
        font-size:42px;
        background: white;
        font-family: "微软雅黑";
    }
    #btn1{
        width:100px;
        height:30px;
        margin-top: 20px;
        margin-right:40px;
    }
    #btn2{
        width:100px;
        height:30px;
        margin-top: 20px;
        margin-right:40px;
    }
    #btn3{
        width:100px;
        height:30px;
        margin-top: 20px;
    }
    </style>
    <script type="text/javascript">
    
    </script>
</head>
<body>
    <div class="count">
        <h1 class="bt">倒计时</h1>
        <div id ="txt">00:10:30:00</div>
        <input type="button" value="开始倒计时" id="btn1" />
        <input type="button" value="结束倒计时" id="btn2" />
        <input type="button" value="重新倒计时" id="btn3" />
    </div>
</body>
</html>
<script type="text/javascript">
    var btn1 = document.getElementById("btn1");
    var btn2 = document.getElementById("btn2");
    var btn3 = document.getElementById("btn3");
    var txt = document.getElementById("txt");
    //console.log(txt.innerText);
    var timer = null;
    var arr = [];
        var str = txt.innerText;
        //console.log(str);
        arr = str.split(':');
        //console.log(txt.innerHTML);
    btn1.onclick = function(){
        timer = setInterval(function(){
            if(arr[3]!=00){
                arr[3]--;
                if(arr[3]<10){
                    arr[3]="0"+arr[3];
                }
                txt.innerHTML = arr[0]+":"+arr[1]+":"+arr[2]+":"+arr[3];
            }else if(arr[3]==00&&arr[2]!=00){
                arr[3]=99;
                arr[2]--;
                if(arr[2]<10){
                    arr[2]="0"+arr[2];
                }
                txt.innerHTML = arr[0]+":"+arr[1]+":"+arr[2]+":"+arr[3];
            }else if(arr[3]==00&&arr[2]==00&&arr[1]!=00){
                arr[3]=99;
                arr[2]=59;
                arr[1]--;
                if(arr[1]<10){
                    arr[1]="0"+arr[1];
                }
                txt.innerHTML = arr[0]+":"+arr[1]+":"+arr[2]+":"+arr[3];
            }
        },10)
    }
    btn2.onclick = function(){
        clearInterval(timer);
    }
    btn3.onclick = function(){
        txt.innerHTML = "00:10:30:00";
    }
</script>

方法二:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>计时器</title>
    <style type="text/css">
    *{margin:0;padding:0;}
    .count{
        width:600px;
        height:320px;
        margin:100px auto;
        background: pink;
        text-align: center;
        box-shadow: 7px 7px 10px #999;
    }
    .bt{
        width:200px;
        height:80px;
        line-height:80px;
        margin:0 auto;
        font-size:48px;
    }
    #txt{
        width:400px;
        height:80px;
        margin:10px auto;
        text-align: center;
        padding-top:40px;
        font-size:42px;
        background: white;
        font-family: "微软雅黑";
    }
    #btn1{
        width:100px;
        height:30px;
        margin-top: 20px;
        margin-right:40px;
    }
    #btn2{
        width:100px;
        height:30px;
        margin-top: 20px;
        margin-right:40px;
    }
    #btn3{
        width:100px;
        height:30px;
        margin-top: 20px;
    }
    </style>
    <script type="text/javascript">
    
    </script>
</head>
<body>
    <div class="count">
        <h1 class="bt">倒计时</h1>
        <div id ="txt">00:10:30:00</div>
        <input type="button" value="开始倒计时" id="btn1" />
        <input type="button" value="结束倒计时" id="btn2" />
        <input type="button" value="重新倒计时" id="btn3" />
    </div>
</body>
</html>
<script type="text/javascript">
    var btn1 = document.getElementById("btn1");
    var btn2 = document.getElementById("btn2");
    var btn3 = document.getElementById("btn3");
    var txt = document.getElementById("txt");
    var maxtime =(10*60 + 30)*100;
    function fn(){
        minutes = Math.floor(maxtime/60/100);
        seconds = Math.floor(maxtime/100- (minutes*60));
        millisecond = maxtime - seconds*100 - minutes*60*100;
        if(minutes < 10){
            minutes = "0" + minutes;
        }
        if(seconds < 10){
            seconds = "0" + seconds;
        }
        if(millisecond < 10){
            millisecond = "0" + millisecond;
        }
        txt.innerHTML = "00:" + minutes + ":" + seconds + ":" + millisecond;
    }
    btn1.onclick = function(){
        var timer=setInterval(function(){
            maxtime -= 1;
            if(maxtime <= 0){
                clearInterval(timer)
            }else{
                fn();
            }
        },10)
        btn2.onclick = function(){
            clearInterval(timer);
        }
        btn3.onclick = function(){
            clearInterval(timer);
            maxtime = (10*60 + 30)*100;
            fn();
        }
    }
        
    
    
</script>

 

posted @ 2019-01-20 20:39  kinoko-木子  阅读(312)  评论(0编辑  收藏  举报