<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

转载于:https://www.cnblogs.com/myJuly/p/10088253.html

JS秒表倒计时器 (转)相关推荐

  1. html可暂停倒计时代码,js实现倒计时器自定义时间和暂停

    js倒计时器可自定义时间和暂停,效果如下,点击start 开始计时,end结束计时 分别复制 H5 css js 代码即可实现,具体的算法在js控制函数中(都写了注释) css html,body{ ...

  2. 基于51单片机电子秒表倒计时器proteus仿真程序原理图PCB数码管显示语言播报

    硬件设计 仿真图1: 计时功能,数码管显示 仿真图2 数码管LCD结合显示:具有多次记录模式: 仿真图3 数码管显示:具有时钟和秒表功能: 仿真图4 数码管显示:具有语音播报功能(这里采用示波器模拟, ...

  3. 基于51单片机电子秒表倒计时器proteus仿真 汇编程序 数码管显示LCD1602显示

    刚刚咱们讲了电子秒表用的是C语言,接下来咱们再讲一讲用汇编. 硬件设计 电路图1: 数码管显示:时间清零:启动计时:暂定计时:继续计时: 电路图2 程序设计 TLOW EQU 78H THIGH EQ ...

  4. 基于51单片机的6位毫秒百分秒级秒表倒计时器proteus仿真

    #include <AT89X52.H> #define uint unsigned int //宏定义无符号整型数据 #define uchar unsigned char //宏定义无 ...

  5. 使用js在桌面上写一个倒计时器_论一个倒计时器的性能优化之路

    原文发表于 2018.05.25,搬运自个人博客. 引子 回顾这半年,扛需求能力越来越强,业务代码也是越写越多.但稍一认真看看这些当时为了满足快速上线所码的东西,问题其实还是不少.这次就从一个简单的计 ...

  6. js倒计时器可自定义时间和暂停

    js倒计时器可自定义时间和暂停,效果如下,点击start 开始计时,end结束计时 分别复制 H5 css js 代码即可实现,具体的算法在js控制函数中(都写了注释) css html,body{ ...

  7. js倒计时天时分秒php,JS制作分秒倒计时器

    这篇文章主要介绍了JavaScript分秒倒计时器实现方法,可实现按照毫秒倒计时的效果,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了JavaScript分秒倒计时器实现方法.分享给大家供 ...

  8. 使用js在桌面上写一个倒计时器_现代课程网教学互动平台课件编辑器:计时器、倒计时器(图文版)...

    现代课程网教学互动平台 课件编辑器 计时器使用指南 01 功能介绍 计时器插件就是可以从零开始计时的插件. 02 编辑插件 1 在顶部菜单栏里找到"工具控件",在下拉菜单中找到&q ...

  9. 基于51单片机的倒计时器秒表定时器数码管显示原理图方案设计

    系统的功能分析 (末尾附文件) 框架图: 原理图: 声光报警电路(低电平有效)设计 有源蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机.打印机.复印机.报警器.电子玩具.汽车电 ...

最新文章

  1. SqlServer数据库基础知识整理(不断更新~)
  2. 怎么git 自己建的服务器_Git服务器搭建,以及Git基本操作
  3. 同步等待异步操作,为什么Wait()在这里冻结程序
  4. Javascript中的AES加密和Java中的解密
  5. bbb 烧写脚本分析
  6. ebs 供应商地点信息_供应商,地址,业务实体,地点关联银行账户
  7. Uncaught ReferenceError: FileAsyncWriter is not defined
  8. 【广告技术】下个月会有多少用户看到洗发水广告?最先进的张量分解模型给你最好的答案
  9. eclipse中导入dtd文件实现xml的自动提示功能
  10. 怎么用proteus软件仿真单片机程序?
  11. 巧用金山网盾对付游戏插件强行锁定主页
  12. Qt使用dump定位崩溃位置
  13. 全球与中国绿色多元醇市场现状及未来发展趋势
  14. C++/EasyX面向对象编程实现-简单双人对战五子棋
  15. vue 页面卡顿(数据量大)
  16. Terraform的安装
  17. Office 远程代码执行漏洞复现过程
  18. 通过快递鸟如何接入圆通速递电子面单
  19. python 爬网站上的图片
  20. 泡泡 shader graph unity

热门文章

  1. 基于Python实现的学生兼职平台
  2. 15年营销老兵探秘加推:为何有2万多家企业选择加推?
  3. 简直不得了!DataVisor推出轻量级UML,实力圈粉中小企业!
  4. poi导出excel 损坏_急!!!java用poi导出excel文件,打开导出的文件时报错“文件错误,数据可能丢失”...
  5. mac安装淘宝镜像cnpm
  6. 微分方程的数值解法与程序实现 pdf_【MATLB数值】—数值计算
  7. 关灯吃面?折基也会下蛋
  8. 0225-全球股市大跌
  9. 下载国外论文的实用网址,Sci-Hub用不了就用它们!
  10. Matlab绘制普朗克公式曲线1/2