当前位置:首页 > JavaScript

js实现倒计时秒

2026-04-04 04:07:09JavaScript

js实现倒计时秒

使用 JavaScript 实现倒计时秒

方法一:基于 setInterval 的简单倒计时

// 设置倒计时时间(秒)
let countdown = 10;

// 获取显示倒计时的元素
const timerElement = document.getElementById('timer');

// 更新倒计时显示
function updateTimer() {
    timerElement.textContent = countdown;
    countdown--;

    // 倒计时结束处理
    if (countdown < 0) {
        clearInterval(interval);
        timerElement.textContent = '倒计时结束';
    }
}

// 每秒执行一次更新
const interval = setInterval(updateTimer, 1000);

方法二:基于 Date 对象的高精度倒计时

// 设置目标时间(当前时间 + 10秒)
const targetTime = new Date();
targetTime.setSeconds(targetTime.getSeconds() + 10);

function updateCountdown() {
    const currentTime = new Date();
    const remainingTime = Math.max(0, Math.floor((targetTime - currentTime) / 1000));

    document.getElementById('timer').textContent = remainingTime;

    if (remainingTime <= 0) {
        clearInterval(countdownInterval);
    }
}

const countdownInterval = setInterval(updateCountdown, 1000);

方法三:使用 requestAnimationFrame 实现平滑倒计时

let countdown = 10;
const startTime = Date.now();

function animateCountdown() {
    const elapsed = (Date.now() - startTime) / 1000;
    const remaining = Math.max(0, countdown - elapsed);

    document.getElementById('timer').textContent = Math.floor(remaining);

    if (remaining > 0) {
        requestAnimationFrame(animateCountdown);
    }
}

requestAnimationFrame(animateCountdown);

注意事项

  • 使用 setInterval 可能会有时间漂移问题,长时间运行可能导致误差
  • requestAnimationFrame 适合需要平滑动画的场景
  • 高精度场景建议使用方法二,基于 Date 对象计算
  • 清除定时器时使用 clearInterval 防止内存泄漏

完整 HTML 示例

<!DOCTYPE html>
<html>
<head>
    <title>倒计时示例</title>
</head>
<body>
    <div id="timer">10</div>

    <script>
        let countdown = 10;
        const timerElement = document.getElementById('timer');

        const interval = setInterval(() => {
            timerElement.textContent = countdown;
            countdown--;

            if (countdown < 0) {
                clearInterval(interval);
                timerElement.textContent = '倒计时结束';
            }
        }, 1000);
    </script>
</body>
</html>

js实现倒计时秒

标签: 倒计时js
分享给朋友:

相关文章

vue实现活动倒计时

vue实现活动倒计时

实现活动倒计时的基本思路 在Vue中实现活动倒计时通常需要获取当前时间与活动结束时间的差值,并将其转换为天、小时、分钟、秒的格式展示。通过定时器每秒更新显示的时间。 定义倒计时数据 在Vue组件的d…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(f…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…