JavaScript使用setTimeout实现倒计时效果


Posted in Javascript onFebruary 19, 2021

为了加强对JavaScript原生代码的编写能力,以及巩固setTimeout()的使用方法,制作了一个倒计时的demo,倒计时在现在的网站中算是一个常见的小功能,如果大家喜欢的话可以留下,就当作一个日常实用的小脚本。

实现思路

1、先获取小时值 将小时值减1开始进行倒计时 分钟59 秒数59
2、秒数的个位从9开始递减,当秒数个位小于0时,秒数的十位减1
3、秒数的十位小于0时,分钟的个位减1
4、分钟的个位小于0时,分钟的十位减1
5、分钟的十位小于0时,小时减1
6、小时数小于0后停止计时全部为0

实现代码

html

<p>倒计时:</p>
<span id="hour">5</span>
<span>:</span>
<span id="minuteTen">0</span>
<span id="minuteBit">0</span>
<span>:</span>
<span id="secondTen">0</span>
<span id="secondBit">0</span>

css

span{
 display: inline-block;
 width: 20px;
 height: 20px;
 background-color: #000000;
 color: #ffffff;
 text-align: center;
 }

JavaScript

function time(){
 /*小时*/
 var hourTxt = document.getElementById("hour");
 var hour = parseInt(document.getElementById("hour").innerHTML);
 /*分钟*/
 var minuteTenTxt = document.getElementById("minuteTen");
 var minuteBitTxt = document.getElementById("minuteBit");
 var minuteTen = parseInt(document.getElementById("minuteTen").innerHTML);
 var minuteBit = parseInt(document.getElementById("minuteBit").innerHTML);
 /*秒*/
 var secondTenTxt = document.getElementById("secondTen");
 var secondBitTxt = document.getElementById("secondBit");
 var secondTen = parseInt(document.getElementById("secondTen").innerHTML);
 var secondBit = parseInt(document.getElementById("secondBit").innerHTML);
 function start(){
 hour--;
 hourTxt.innerHTML = hour;
 minuteTen = 5;
 minuteTenTxt.innerHTML = minuteTen;
 minuteBit = 9;
 minuteBitTxt.innerHTML = minuteBit;
 secondTen = 5;
 secondTenTxt.innerHTML = secondTen;
 secondBit = 9;
 secondBitTxt.innerHTML = secondBit;

 /*secondBit开始自减*/
 function second(){
  secondBit--;
  secondBitTxt.innerHTML = secondBit;

  /*十秒过后*/
  if(secondBit < 0){
  secondTen--;
  secondTenTxt.innerHTML = secondTen;
  secondBit = 9;
  secondBitTxt.innerHTML = secondBit;
  /*继续倒计时*/
  setTimeout(second,1000);

  /*一分钟过后*/
  if(secondTen < 0){
   minuteBit--;
   minuteBitTxt.innerHTML = minuteBit;
   secondTen = 5;
   secondTenTxt.innerHTML = secondTen;
   secondBit = 9;
   secondBitTxt.innerHTML = secondBit;

   /*十分钟过后*/
   if(minuteBit < 0){
   minuteTen--;
   minuteTenTxt.innerHTML = minuteTen;
   minuteBit = 9;
   minuteBitTxt.innerHTML = minuteBit;
   }

   /*一个小时过后*/
   if(minuteTen < 0){
   hour--;
   hourTxt.innerHTML = hour;
   minuteTen = 5;
   minuteTenTxt.innerHTML = minuteTen;
   minuteBit = 9;
   minuteBitTxt.innerHTML = minuteBit;
   secondTen = 5;
   secondTenTxt.innerHTML = secondTen;
   secondBit = 9;
   secondBitTxt.innerHTML = secondBit;
   }

   /*倒计时结束*/
   if(hour < 0 ){
   hour = 0;
   hourTxt.innerHTML = hour;
   minuteTen = 0;
   minuteTenTxt.innerHTML = minuteTen;
   minuteBit = 0;
   minuteBitTxt.innerHTML = minuteBit;
   secondTen = 0;
   secondTenTxt.innerHTML = secondTen;
   secondBit = 0;
   secondBitTxt.innerHTML = secondBit;
   clearTimeout(second);
   clearTimeout(start);
   }
  }
  }else{
  setTimeout(second,1000);
  }
 }
 setTimeout(second,1000);

 }
 setTimeout(start,1000);
}

执行页面

JavaScript使用setTimeout实现倒计时效果

结束页面

JavaScript使用setTimeout实现倒计时效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
自动生成文章摘要的代码[JavaScript 版本]
Mar 20 Javascript
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.3
Mar 22 Javascript
javascript cookie操作类的实现代码小结附使用方法
Jun 02 Javascript
jQuery 源码分析笔记(4) Ready函数
Jun 02 Javascript
Node.js开源应用框架HapiJS介绍
Jan 14 Javascript
使用JavaScript开发IE浏览器本地插件实例
Feb 18 Javascript
javascript实现添加附件功能的方法
Nov 18 Javascript
jQuery的内容过滤选择器学习教程
Apr 18 Javascript
JavaScript简单计算人的年龄示例
Apr 15 Javascript
js 获取元素的具体样式信息getcss(实例讲解)
Jul 05 Javascript
React复制到剪贴板的示例代码
Aug 22 Javascript
基于iview的router常用控制方式
May 30 Javascript
react项目从新建到部署的实现示例
Feb 19 #Javascript
原生JavaScript实现幻灯片效果
Feb 19 #Javascript
JavaScript 实现继承的几种方式
Feb 19 #Javascript
JavaScript 生成唯一ID的几种方式
Feb 19 #Javascript
JavaScript实现打字游戏
Feb 19 #Javascript
JS+CSS实现动态时钟
Feb 19 #Javascript
js动态添加带圆圈序号列表的实例代码
Feb 18 #Javascript
You might like
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
2014/11/19 PHP
php中最简单的字符串匹配算法
2014/12/16 PHP
帝国CMS留言板回复后发送EMAIL通知客户
2015/07/06 PHP
PHP简单实现断点续传下载的方法
2015/09/25 PHP
php实现购物车功能(上)
2020/07/23 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
Jquery设置attr的disabled属性控制某行显示或者隐藏
2014/09/25 Javascript
JavaScript常用验证函数实例汇总
2014/11/25 Javascript
JS函数this的用法实例分析
2015/02/05 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
2015/03/13 Javascript
JavaScript的兼容性与调试技巧
2016/11/22 Javascript
vuejs2.0子组件改变父组件的数据实例
2017/05/10 Javascript
Node接收电子邮件的实例代码
2017/07/21 Javascript
webpack 1.x升级过程中的踩坑总结大全
2017/08/09 Javascript
electron实现qq快捷登录的方法示例
2018/10/22 Javascript
VUE基于NUXT的SSR 服务端渲染
2018/11/30 Javascript
[02:04]完美世界城市挑战赛秋季赛报名开始 谁是solo路人王?
2019/10/10 DOTA
Python定时任务sched模块用法示例
2018/07/16 Python
python文件操作之批量修改文件后缀名的方法
2018/08/10 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
Python测试Kafka集群(pykafka)实例
2019/12/23 Python
深入浅析css3 border-image边框图像详解
2015/11/24 HTML / CSS
伊芙丽官方旗舰店:中国淑女一线品牌
2017/12/01 全球购物
物业电工岗位职责
2013/11/20 职场文书
车间班长岗位职责
2013/11/30 职场文书
毕业实习评语
2014/02/10 职场文书
《维生素c的故事》教学反思
2014/02/18 职场文书
招聘专员岗位职责
2014/03/07 职场文书
安全生产承诺书
2014/03/26 职场文书
服务承诺书格式
2014/05/21 职场文书
供电工程专业求职信
2014/08/09 职场文书
幼儿园园长新年寄语
2015/08/17 职场文书
2016高三毕业赠言寄语
2015/12/04 职场文书
解决Jupyter-notebook不弹出默认浏览器的问题
2021/03/30 Python
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
2021/04/03 Python
使用numpy实现矩阵的翻转(flip)与旋转
2021/06/03 Python