innerhtml倒计时更新
时间: 2023-07-01 16:11:43 浏览: 149
要实现倒计时更新 `innerHTML`,可以使用 JavaScript 中的 `setInterval()` 函数和 `Date` 对象,它们可以帮助我们实现倒计时的效果。
以下是一个例子,它从一个具有 `id` 为 `countdown` 的元素中读取时间戳,并将其转换为倒计时的格式,最后更新该元素的 `innerHTML`:
```html
<!DOCTYPE html>
<html>
<body>
<div id="countdown" data-timestamp="1634160000000"></div>
<script>
setInterval(function() {
// 获取倒计时目标时间戳
var timestamp = document.getElementById("countdown").getAttribute("data-timestamp");
// 计算倒计时的时间差
var timeDiff = timestamp - Date.now();
// 如果时间差小于等于 0,则停止倒计时
if (timeDiff <= 0) {
clearInterval(intervalId);
document.getElementById("countdown").innerHTML = "倒计时已结束";
return;
}
// 将时间差转换为时分秒的格式
var hours = Math.floor(timeDiff / (1000 * 60 * 60));
var minutes = Math.floor((timeDiff % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((timeDiff % (1000 * 60)) / 1000);
var countdownStr = hours + "小时 " + minutes + "分钟 " + seconds + "秒";
// 更新倒计时元素的 innerHTML
document.getElementById("countdown").innerHTML = countdownStr;
}, 1000);
</script>
</body>
</html>
```
在上面的例子中,`setInterval()` 函数的第一个参数是一个匿名函数,它在每秒钟被调用一次。该函数首先从具有 `id` 为 `countdown` 的元素中读取时间戳,并计算当前时间与时间戳之间的时间差。然后,它将时间差转换为时分秒的格式,并将其更新到 `id` 为 `countdown` 的元素的 `innerHTML` 中。
如果倒计时已经结束,则函数会停止定时器并将 `innerHTML` 更新为 "倒计时已结束"。在这个例子中,我们使用了 `data-timestamp` 属性来储存时间戳。
阅读全文