JavaScript:定时器
定时器(两种)
window 对象给我们提供了 2 个非常好用的方法-定时器。
-
setTimeout()
-
setInterval()
开启定时器



<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>倒计时</title>
<style>
div {
margin: 200px;
}
span {
display: inline-block;
width: 40px;
height: 40px;
background-color: #333;
font-size: 20px;
color: #fff;
text-align: center;
line-height: 40px;
}
</style>
</head>
<body>
<div>
<span class="hour">1</span>
<span class="minute">2</span>
<span class="second">3</span>
</div>
<script>
// 1. 获取元素
var hour = document.querySelector('.hour'); // 小时的黑色盒子
var minute = document.querySelector('.minute'); // 分钟的黑色盒子
var second = document.querySelector('.second'); // 秒数的黑色盒子
var inputTime = +new Date('2020-10-10 22:00:00'); // 返回的是用户输入时间总的毫秒数
countDown(); // 我们先调用一次这个函数,防止第一次刷新页面有空白
// 2. 开启定时器
setInterval(countDown, 1000);
function countDown() {
var nowTime = +new Date(); // 返回的是当前时间总的毫秒数
var times = (inputTime - nowTime) / 1000; // times是剩余时间总的秒数
var h = parseInt(times / 60 / 60 % 24); //时
h = h < 10 ? '0' + h : h;
hour.innerHTML = h; // 把剩余的小时给 小时黑色盒子
var m = parseInt(times / 60 % 60); // 分
m = m < 10 ? '0' + m : m;
minute.innerHTML = m;
var s = parseInt(times % 60); // 当前的秒
s = s < 10 ? '0' + s : s;
second.innerHTML = s;
}
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>手机发送验证码</title>
<script>
document.addEventListener("DOMContentLoaded", function () {
var btn = document.querySelector('#btn');
var time = 59;
btn.addEventListener('click', function () {
//禁用按钮
btn.disabled = true;
//计时器
var timer = setInterval(function () {
// 判断剩余秒数
if (time == 0) {
// 清除定时器和复原按钮
clearInterval(this);
btn.disabled = false;
btn.value = '发送';
} else {
btn.value = time + '秒后从新发送';
time--;
}
}, 1000);
})
})
</script>
</head>
<body>
手机号码: <input type="number"> <input id="btn" type="button" value="发送">
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>计时器</title>
<script>
document.addEventListener("DOMContentLoaded", function () {
//setTimeout:炸弹定时器两个参数,
//第一个参数是回调函数(时间到了会去执行的逻辑),
//第二个参数是设定的时间。。。多少时间去执行
var timer = setTimeout(function () {
var div = document.getElementById("vid")
div.style.color = 'bule'
var img = document.getElementsByTagName('img')[0]
img.style.display = 'none'
clearTimeout(timer);//关闭资源
}, 5000)
//**setInterval() 闹钟定时器**
//每隔一定的时间就回去回调函数 :参数和炸弹定时器一致
var intimer= setInterval(() => {
var date = new Date();//得到一个当前时间
function xingqi(date) {
let xingqi = date.getDay();
if (!(date instanceof Date)) {
return '传递的不是时间';
}
switch (xingqi) {
case 0: return '天';
case 1: return '一';
case 2: return '二';
case 3: return '三';
case 4: return '四';
case 5: return '五';
case 6: return '六';
}
}
var strdate = `${date.getFullYear()}年${date.getMonth() + 1}月${date.getDate()}日 星期 ${xingqi(date)}
${date.getHours()} 时 ${date.getMinutes()}分 ${date.getSeconds()}秒`;
document.getElementById("time").innerHTML=strdate;
}, 1000);
//如果想要计时器一开始执行,需要将执行的方法在外部执行一次。
var btn = document.getElementById("btn")
btn.addEventListener('click',function(){
clearInterval(intimer)
})
})
</script>
</head>
<body>
<div id="time">时间</div>
<button id="btn"> 停止计时器</button>
<div style="color: crimson;width: 700px;height: 700px;" id="vid">
<img src="../案例/timg.jpg" alt="广告">
</div>
</body>
</html>
作者:隔壁老郭
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
Java入门到入坟
万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!
浙公网安备 33010602011771号