当前位置:首页 > 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);

动态更新页面显示

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

js实现倒计时秒

<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
分享给朋友:

相关文章

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swipe…

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js 实现滚动

js 实现滚动

实现滚动的方法 使用 window.scrollTo() window.scrollTo() 方法可以滚动到文档中的特定位置。可以指定 x 和 y 坐标,或者使用平滑滚动的选项。 // 滚动到指定位…

js 实现跳转

js 实现跳转

使用 window.location.href 进行跳转 通过修改 window.location.href 可以跳转到指定 URL,浏览器会加载新页面: window.location.hre…

js计算器的实现

js计算器的实现

实现基础结构 HTML部分需要创建计算器的基本框架,包含显示区域和按钮。使用<div>容器包裹整个计算器,内部设置一个显示屏和多个按钮。 <div class="calculato…