当前位置:首页 > JavaScript

js实现倒计时秒

2026-01-30 12:27:54JavaScript

js实现倒计时秒

JavaScript 实现倒计时秒

使用 setInterval 实现基础倒计时

let countdown = 10; // 初始秒数
const timer = setInterval(() => {
  console.log(countdown);
  countdown--;
  if (countdown < 0) {
    clearInterval(timer);
    console.log("倒计时结束");
  }
}, 1000);

动态更新页面显示

假设页面有一个元素用于显示倒计时:

<div id="countdown">10</div>

JavaScript 代码:

let seconds = 10;
const element = document.getElementById("countdown");
const timer = setInterval(() => {
  element.textContent = seconds;
  seconds--;
  if (seconds < 0) {
    clearInterval(timer);
    element.textContent = "时间到!";
  }
}, 1000);

封装为可复用函数

function startCountdown(seconds, elementId) {
  const element = document.getElementById(elementId);
  const timer = setInterval(() => {
    element.textContent = seconds;
    seconds--;
    if (seconds < 0) {
      clearInterval(timer);
      element.textContent = "倒计时结束";
    }
  }, 1000);
}

// 调用示例
startCountdown(30, "countdown");

添加暂停和继续功能

let seconds = 10;
let timer;
const element = document.getElementById("countdown");

function start() {
  timer = setInterval(() => {
    element.textContent = seconds;
    seconds--;
    if (seconds < 0) {
      clearInterval(timer);
      element.textContent = "时间到!";
    }
  }, 1000);
}

function pause() {
  clearInterval(timer);
}

// 页面按钮绑定事件
document.getElementById("startBtn").addEventListener("click", start);
document.getElementById("pauseBtn").addEventListener("click", pause);

使用 requestAnimationFrame 实现更精确倒计时

let startTime = Date.now();
let duration = 10000; // 10秒
const element = document.getElementById("countdown");

function updateCountdown() {
  const elapsed = Date.now() - startTime;
  const remaining = Math.max(0, duration - elapsed);
  const seconds = Math.ceil(remaining / 1000);
  element.textContent = seconds;

  if (remaining > 0) {
    requestAnimationFrame(updateCountdown);
  } else {
    element.textContent = "时间到!";
  }
}

updateCountdown();

注意事项

  • 使用 setInterval 时,实际间隔可能会有微小偏差
  • 页面不可见时(如切换标签页),某些浏览器会降低定时器精度
  • 清除定时器使用 clearInterval 避免内存泄漏
  • 对于长时间倒计时,考虑使用服务器时间同步

js实现倒计时秒

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

相关文章

js实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #34…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。…

js实现驼峰

js实现驼峰

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