当前位置:首页 > 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模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与响应式…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码 funct…