我可以为你提供一个详细的 JavaScript 倒计时代码示例,并附上详细注释,这个倒计时器将显示小时、分钟和秒数。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Countdown Timer</title>
<style>
#countdown {
font-size: 2em;
text-align: center;
margin-top: 20%;
}
</style>
</head>
<body>
<div id="countdown"></div>
<script>
// 设置倒计时结束时间(2023年12月31日 23:59:59)
const endTime = new Date('December 31, 2023 23:59:59').getTime();
// 获取页面上用于显示倒计时的元素
const countdownElement = document.getElementById('countdown');
// 定义一个函数来更新倒计时
function updateCountdown() {
// 获取当前时间
const now = new Date().getTime();
// 计算剩余时间(以毫秒为单位)
const timeRemaining = endTime now;
// 如果剩余时间为负数,表示倒计时已结束
if (timeRemaining <= 0) {
countdownElement.innerHTML = "TIME'S UP!";
clearInterval(interval); // 停止定时器
return;
}
// 计算剩余的小时、分钟和秒数
const hours = Math.floor((timeRemaining / (1000 * 60 * 60)) % 24);
const minutes = Math.floor((timeRemaining / (1000 * 60)) % 60);
const seconds = Math.floor((timeRemaining / 1000) % 60);
// 格式化时间,使其始终为两位数(09:05:07)
const formattedHours = String(hours).padStart(2, '0');
const formattedMinutes = String(minutes).padStart(2, '0');
const formattedSeconds = String(seconds).padStart(2, '0');
// 更新页面上的倒计时显示
countdownElement.innerHTML =${formattedHours}:${formattedMinutes}:${formattedSeconds}
;
}
// 每秒更新一次倒计时
const interval = setInterval(updateCountdown, 1000);
// 初始化倒计时显示
updateCountdown();
</script>
</body>
</html>
代码解释:
1、HTML部分:
创建一个<div>
元素用于显示倒计时。
使用简单的CSS样式使倒计时居中并增大字体大小。
2、JavaScript部分:
设置倒计时结束时间:通过new Date('December 31, 2023 23:59:59').getTime()
获取目标时间的毫秒值。
获取倒计时元素:通过document.getElementById('countdown')
获取页面上的倒计时显示元素。
定义更新倒计时的函数:updateCountdown
函数会每秒执行一次,更新倒计时显示。
获取当前时间:通过new Date().getTime()
获取当前时间的毫秒值。
计算剩余时间:用目标时间减去当前时间得到剩余时间的毫秒值。
检查倒计时是否结束:如果剩余时间小于等于零,则显示“TIME'S UP!”并停止定时器。
计算小时、分钟和秒数:分别用毫秒值除以相应的单位(小时、分钟、秒)并取整。
格式化时间:确保小时、分钟和秒数始终是两位数。
更新页面显示:将格式化后的时间字符串显示在页面上。
启动定时器:使用setInterval
每秒调用一次updateCountdown
函数。
初始化倒计时显示:立即调用一次updateCountdown
函数以显示初始倒计时。