当前位置:首页 > JavaScript

js实现倒计时秒

2026-01-30 12:27:54JavaScript

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 代码:

js实现倒计时秒

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实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <htm…

js实现显示隐藏

js实现显示隐藏

显示隐藏的实现方法 在JavaScript中,实现元素的显示和隐藏可以通过多种方式完成。以下是几种常见的方法: 修改CSS的display属性 通过改变元素的display属性可以在none(隐藏)…

js实现轮播代码

js实现轮播代码

基础轮播实现 使用HTML、CSS和JavaScript创建一个简单的轮播效果。HTML部分定义轮播容器和图片元素。 <div class="carousel"> <div c…