JavaScript使用setTimeout实现倒计时效果
编程学习 2021-07-04 14:07www.dzhlxh.cn编程入门
这篇文章主要为大家详细介绍了JavaScript使用setTimeout实现倒计时效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
为了加强对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);
}
执行页面
结束页面
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
编程语言
- ThinkPad 笔记本如何调节LCD屏幕亮度
- Dreamweaver制作网页打开特效教程
- Win10 Mobile 10586升级后无限重启怎么办 硬重启帮您
- Win8系统提示音频设备有问题有一个或多个音频服
- Xbox One版Win10首个预览版9月份发布
- 如何在textarea文本输入区内实现换行
- Win10 Build 9901系统更新 预览版新版本下载
- McAfee Framework存在远程格式串处理漏洞
- Win10家庭版今日(7月30)正式在中国官方商城开卖
- Win10 Mobile预览版更新完10536.1000后才收到10536.100
- Win10 RS2更新了什么-Win10 RS2最终版本号1704首曝
- Windows7如何查看回收站对应的文件夹有哪些方法
- Win10让Charms栏回归桌面的方法教程
- 取消Windows XP系统开机启动画面的小技巧
- win8系统怎么下载安装USB百兆网卡?
- XP系统下磁盘空间变少了怎么办?XP系统磁盘空间