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 相关文章推荐
最新28个很棒的jQuery 教程
May 28 Javascript
js实现的GridView即表头固定表体有滚动条且可滚动
Feb 19 Javascript
javascript 小数取整简单实现方式
May 30 Javascript
基于Javascript实现弹出页面效果
Jan 01 Javascript
JavaScript 对象详细整理总结
Sep 29 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
Jan 08 Javascript
Bootstrap 设置datetimepicker在屏幕上面弹出设置方法
Mar 21 Javascript
Vue动态获取width的方法
Aug 22 Javascript
深入浅析js原型链和vue构造函数
Oct 25 Javascript
Vue表单输入绑定的示例代码
Nov 01 Javascript
微信小程序使用template标签实现五星评分功能
Nov 03 Javascript
微信小程序实现定位及到指定位置导航的示例代码
Aug 20 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学习笔记之数组篇
2011/06/28 PHP
php mysql 判断update之后是否更新了的方法
2012/01/10 PHP
PHP版网站缓存加快打开速度的方法分享
2012/06/03 PHP
ThinkPHP3.1查询语言详解
2014/06/19 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
2016/08/01 PHP
List Installed Hot Fixes
2007/06/12 Javascript
更优雅的事件触发兼容
2011/10/24 Javascript
Extjs中使用extend(js继承) 的代码
2012/03/15 Javascript
Javascript模块化编程(一)模块的写法最佳实践
2013/01/17 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
2015/08/28 Javascript
js和jquery分别验证单选框、复选框、下拉框
2015/12/17 Javascript
js 获取范围内的随机数实例代码
2016/08/02 Javascript
使用classList来实现两个按钮样式的切换方法
2018/01/24 Javascript
基于Vue实现电商SKU组合算法问题
2019/05/29 Javascript
vue中改变滚动条样式的方法
2020/03/03 Javascript
jQuery实现雪花飘落效果
2020/08/02 jQuery
javascript实现京东快递单号的查询效果
2020/11/30 Javascript
[00:34]DOTA2上海特级锦标赛 VG战队宣传片
2016/03/04 DOTA
[57:55]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第二场 12.12
2020/12/16 DOTA
python list转dict示例分享
2014/01/28 Python
Django框架中处理URLconf中特定的URL的方法
2015/07/20 Python
Python打造出适合自己的定制化Eclipse IDE
2016/03/02 Python
用PyInstaller把Python代码打包成单个独立的exe可执行文件
2018/05/26 Python
python绘制规则网络图形实例
2019/12/09 Python
matlab灰度图像调整及imadjust函数的用法详解
2020/02/27 Python
通过cmd进入python的步骤
2020/06/16 Python
基于python实现MQTT发布订阅过程原理解析
2020/07/27 Python
利用Canvas模仿百度贴吧客户端loading小球的方法示例
2017/08/13 HTML / CSS
给排水专业应届生求职信
2013/10/12 职场文书
教师先进工作者事迹材料
2014/05/01 职场文书
工商管理专业自荐信
2014/06/03 职场文书
体育口号大全
2014/06/18 职场文书
党员自我对照检查材料
2014/08/19 职场文书
三方协议书
2015/01/27 职场文书
区域经理岗位职责
2015/02/02 职场文书
银行自荐信范文
2015/03/25 职场文书