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 相关文章推荐
Dojo 学习要点
Sep 03 Javascript
Javascript中valueOf与toString区别浅析
Mar 19 Javascript
jQuery判断元素上是否绑定了指定事件的方法
Mar 17 Javascript
javascript封装简单实现方法
Aug 11 Javascript
jQuery多条件筛选如何实现
Nov 04 Javascript
微信小程序 wx:key详细介绍
Oct 28 Javascript
jquery删除数组中重复元素
Dec 05 Javascript
详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
Aug 30 Javascript
JavaScript模块详解
Dec 18 Javascript
用js简单提供增删改查接口
May 12 Javascript
layui时间控件选择时间范围的实现方法
Sep 28 Javascript
vue+animation实现翻页动画
Jun 29 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 mvc开发模式的感想
2011/06/28 PHP
php array_keys 返回数组的键名
2016/10/25 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
基于JQuery的浮动DIV显示提示信息并自动隐藏
2011/02/11 Javascript
JS中 用户登录系统的解决办法
2013/04/15 Javascript
带左右箭头图片轮播的JS代码
2013/12/18 Javascript
JS实现关键字搜索时的相关下拉字段效果
2014/08/05 Javascript
Bootstrap教程JS插件滚动监听学习笔记分享
2016/05/18 Javascript
jQuery实现手机版页面翻页效果的简单实例
2016/10/05 Javascript
jQuery动态生成不规则表格(前后端)
2017/02/21 Javascript
jQuery ajax请求struts action实现异步刷新
2017/04/19 jQuery
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
Vue实现动态显示textarea剩余字数
2017/05/22 Javascript
jQuery实现模糊搜索功能的方法分析
2018/06/29 jQuery
微信小程序实现图片上传放大预览删除代码
2020/06/28 Javascript
AngularJS中ng-options实现下拉列表的数据绑定方法
2018/08/13 Javascript
js实现json数组分组合并操作示例
2019/02/12 Javascript
Vue中props的详解
2019/05/16 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
2019/05/20 Javascript
layui use 定义js外部引用函数的方法
2019/09/26 Javascript
基于vue和websocket的多人在线聊天室
2020/02/01 Javascript
JavaScript实现简易计算器小功能
2020/10/22 Javascript
python list转矩阵的实例讲解
2018/08/04 Python
Python Pandas数据结构简单介绍
2019/07/03 Python
Python Web程序搭建简单的Web服务器
2019/07/31 Python
python3 Scrapy爬虫框架ip代理配置的方法
2020/01/17 Python
python正则表达式的懒惰匹配和贪婪匹配说明
2020/07/13 Python
小学教师培训感言
2014/02/11 职场文书
广告词串烧
2014/03/19 职场文书
2014年学校办公室工作总结
2014/12/19 职场文书
党员公开承诺书2015
2015/01/21 职场文书
音乐剧猫观后感
2015/06/04 职场文书
2015大学生入党个人自传
2015/06/26 职场文书
《世界多美呀》教学反思
2016/02/22 职场文书
python爬虫之selenium库的安装及使用教程
2021/05/23 Python
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android