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 相关文章推荐
用JS操作FRAME中的IFRAME及其内容的实现代码
Jul 26 Javascript
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
Apr 20 Javascript
javascript动态判断html元素并执行不同的操作
Jun 16 Javascript
基于Jquery实现焦点图淡出淡入效果
Nov 30 Javascript
浅谈vuepress 踩坑记
Apr 18 Javascript
快速解决angularJS中用post方法时后台拿不到值的问题
Aug 14 Javascript
一个因@click.stop引发的bug的解决
Jan 08 Javascript
JS算法题之查找数字在数组中的索引位置
May 15 Javascript
简单了解TypeScript中如何继承 Error 类
Jun 21 Javascript
layui form表单提交后实现自动刷新
Oct 25 Javascript
对vue中的事件穿透与禁止穿透实例详解
Oct 28 Javascript
vue+echarts实现动态折线图的方法与注意
Sep 01 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
Apache中php.ini的设置方法
2013/02/28 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
2019/05/25 PHP
通过event对象的fromElement属性解决热区设置主实体的一个bug
2008/12/22 Javascript
Jquery在IE7下无法使用 $.ajax解决方法
2009/11/11 Javascript
jquery 选项卡效果 新手代码
2011/07/08 Javascript
更换select下拉菜单背景样式的实现代码
2011/12/20 Javascript
Moment.js 不容错过的超棒Javascript日期处理类库
2012/04/15 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
2013/01/23 Javascript
jQuery 获取和设置select下拉框的值实现代码
2013/11/08 Javascript
JS 实现列表与多选框选择附预览动画
2014/10/29 Javascript
html的DOM中Event对象onblur事件用法实例
2015/01/21 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
2015/06/10 Javascript
Jquery实现仿京东商城省市联动菜单
2015/11/19 Javascript
jQuery过滤特殊字符及JS字符串转为数字
2016/05/26 Javascript
JS根据生日月份和日期计算星座的简单实现方法
2016/11/24 Javascript
求js数组的最大值和最小值的四种方法
2017/03/03 Javascript
js精确的加减乘除实例
2017/11/14 Javascript
对vue里函数的调用顺序介绍
2018/03/17 Javascript
深入浅析Vue 中 ref 的使用
2019/04/29 Javascript
微信小程序工具函数封装
2019/10/28 Javascript
Python兔子毒药问题实例分析
2015/03/05 Python
使用Python的Flask框架实现视频的流媒体传输
2015/03/31 Python
在Django中管理Users和Permissions以及Groups的方法
2015/07/23 Python
如何通过50行Python代码获取公众号全部文章
2019/07/12 Python
Python Excel vlookup函数实现过程解析
2020/06/22 Python
Python中的特殊方法以及应用详解
2020/09/20 Python
HTML5调用手机摄像头拍照的实现思路及代码
2014/06/15 HTML / CSS
中国专业的综合网上购物商城:京东
2016/08/02 全球购物
美国精油公司:Plant Therapy
2019/05/17 全球购物
导游个人求职信范文
2014/03/23 职场文书
社区党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
反邪教警示教育活动总结
2015/05/09 职场文书
活动总结模板大全
2015/05/11 职场文书
代理词怎么写
2015/05/25 职场文书
大学生村官驻村工作心得体会
2016/01/23 职场文书
看完这篇文章获得一些java if优化技巧
2021/07/15 Java/Android