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

  • 相关阅读:
    js与asp.net后台交互
    Asp.net封装js的类
    RegisterClientScriptBlock 与 RegisterStartupScript 的区别
    Page.ClientScript.RegisterStartupScript()
    错误与修复:ASP.NET无法检测IE10,导致_doPostBack未定义JavaScript错误,恒处于FF5卷动条位置
    JS数组的操作
    拉里·埃里森和历史上最牛的演讲【转】
    SSIS 学习(9):包部署常见问题汇总【转】
    SSIS 学习(8):事务【转】
    SSIS 学习(7):包配置(下)【转】
  • 原文地址:https://www.cnblogs.com/myJuly/p/10088253.html
Copyright © 2011-2022 走看看