当前位置:首页 > JavaScript

js实现倒计时js

2026-02-02 12:24:24JavaScript

使用 setInterval 实现倒计时

通过 setInterval 每隔一秒更新剩余时间,并在倒计时结束时清除定时器。

function countdown(seconds, callback) {
  const timer = setInterval(() => {
    seconds--;
    if (seconds <= 0) {
      clearInterval(timer);
      callback();
    }
    console.log(`剩余时间: ${seconds}秒`);
  }, 1000);
}

// 示例用法
countdown(10, () => {
  console.log('倒计时结束');
});

使用 setTimeout 递归实现倒计时

通过递归调用 setTimeout 实现倒计时,避免 setInterval 可能带来的时间误差。

function countdown(seconds, callback) {
  console.log(`剩余时间: ${seconds}秒`);
  if (seconds <= 0) {
    callback();
    return;
  }
  setTimeout(() => {
    countdown(seconds - 1, callback);
  }, 1000);
}

// 示例用法
countdown(10, () => {
  console.log('倒计时结束');
});

显示格式化的倒计时时间

将剩余时间格式化为 HH:MM:SS 形式,适用于显示更友好的倒计时界面。

function formatTime(seconds) {
  const hours = Math.floor(seconds / 3600);
  const minutes = Math.floor((seconds % 3600) / 60);
  const secs = seconds % 60;
  return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
}

function countdown(seconds, callback) {
  console.log(`剩余时间: ${formatTime(seconds)}`);
  if (seconds <= 0) {
    callback();
    return;
  }
  setTimeout(() => {
    countdown(seconds - 1, callback);
  }, 1000);
}

// 示例用法
countdown(3600, () => {
  console.log('倒计时结束');
});

在 HTML 页面中显示倒计时

将倒计时显示在网页的某个元素中,适用于前端开发。

<div id="countdown"></div>
<script>
  function countdown(seconds, elementId, callback) {
    const element = document.getElementById(elementId);
    element.textContent = `剩余时间: ${seconds}秒`;
    if (seconds <= 0) {
      callback();
      return;
    }
    setTimeout(() => {
      countdown(seconds - 1, elementId, callback);
    }, 1000);
  }

  // 示例用法
  countdown(10, 'countdown', () => {
    console.log('倒计时结束');
  });
</script>

使用 requestAnimationFrame 实现高精度倒计时

适用于需要高精度计时的情况,如动画或游戏开发。

function countdown(seconds, callback) {
  const startTime = performance.now();
  function update(currentTime) {
    const elapsed = (currentTime - startTime) / 1000;
    const remaining = Math.max(0, seconds - elapsed);
    console.log(`剩余时间: ${remaining.toFixed(1)}秒`);
    if (remaining <= 0) {
      callback();
      return;
    }
    requestAnimationFrame(update);
  }
  requestAnimationFrame(update);
}

// 示例用法
countdown(10, () => {
  console.log('倒计时结束');
});

js实现倒计时js

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

相关文章

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现全选

js实现全选

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

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js实现列表

js实现列表

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

js防抖和节流实现

js防抖和节流实现

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