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入门到入坟
万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南