zoukankan      html  css  js  c++  java
  • JS秒表倒计时器 (转)

    <html>

    <body>

    <span>倒计时30分钟:</span><span id="clock">00:30:00:00</span>

    </body>

    </heml>

    <script type="text/javascript">

    //秒表倒计时控制
    var normalelapse = 100;  
    var nextelapse = normalelapse;
    var counter;   
    var startTime;
    var start1 = clock.innerText;   
    var finish = "00:00:00:00";  
    var timer = null;  
    // 开始运行  
    function run() {  
        counter = 0;  
        // 初始化开始时间  
        startTime = new Date().valueOf(); 
        //alert(startTime);
         
        // nextelapse是定时时间, 初始时为100毫秒  
        // 注意setInterval函数: 时间逝去nextelapse(毫秒)后, onTimer才开始执行  
        timer = window.setInterval("onTimer()", nextelapse);   
    }  
    // 停止运行  
    function stop() {  
        window.clearTimeout(timer);  
    }  
    window.onload = function() {   
     run();
    }  
    // 倒计时函数  
    function onTimer()  
    {  
        if (start1 == finish)  
        {  
            window.clearInterval(timer);   
            return;  
        }  
        var hms = new String(start1).split(":");  
        var ms = new Number(hms[3]);  
        var s = new Number(hms[2]);  
        var m = new Number(hms[1]);  
        var h = new Number(hms[0]);  
        ms -= 10;  
        if (ms < 0)  
        {  
            ms = 90;  
            s -= 1;  
            if (s < 0)  
            {  
                s = 59;  
                m -= 1;  
            }  
            if (m < 0)  
            {  
                m = 59;  
                h -= 1;  
            }  
        }  
        var ms = ms < 10 ? ("0" + ms) : ms;  
        var ss = s < 10 ? ("0" + s) : s;  
        var sm = m < 10 ? ("0" + m) : m;  
        var sh = h < 10 ? ("0" + h) : h;  
        start1 = sh + ":" + sm + ":" + ss + ":" + ms;  
        clock.innerText = start1;  
        // 清除上一次的定时器  
        window.clearInterval(timer);  
        // 自校验系统时间得到时间差, 并由此得到下次所启动的新定时器的时间nextelapse  
        counter++;   
        var counterSecs = counter * 100;  
        var elapseSecs = new Date().valueOf() - startTime;  
        var diffSecs = counterSecs - elapseSecs;  
        nextelapse = normalelapse + diffSecs;  
        //diff.value = counterSecs + "-" + elapseSecs + "=" + diffSecs;  
       // next.value = "nextelapse = " + nextelapse;  
        if (nextelapse < 0) nextelapse = 0;  
        // 启动新的定时器  
        timer = window.setInterval("onTimer()", nextelapse);   

    </script>

    转载自:https://blog.csdn.net/pamchen/article/details/7854855

  • 相关阅读:
    安装node.js webkit环境[一]
    wpf 窗口最小化后,触发某事件弹出最小化窗口并置顶
    c# 旋转图片 无GDI+一般性错误
    类库里面添加日志记录 log4net
    string转xml
    DES c#加密后java解密
    使用排序字典排序
    怎么让一段xml被识别为字符串
    新装iis 页面503错误 DefaultAppPool停止解决方案
    hession
  • 原文地址:https://www.cnblogs.com/myJuly/p/10088253.html
Copyright © 2011-2022 走看看