当前位置:首页 > JavaScript

js实现读秒

2026-02-01 05:11:59JavaScript

使用 setInterval 实现读秒

通过 setInterval 定时器实现倒计时功能,每隔 1 秒更新显示的数字。

let seconds = 10; // 初始秒数
const countdownElement = document.getElementById('countdown');

const timer = setInterval(() => {
  seconds--;
  countdownElement.textContent = seconds;

  if (seconds <= 0) {
    clearInterval(timer);
    countdownElement.textContent = '时间到!';
  }
}, 1000);

使用 setTimeout 递归实现读秒

通过递归调用 setTimeout 实现更精确的读秒控制,避免 setInterval 的潜在误差。

js实现读秒

let seconds = 10;
const countdownElement = document.getElementById('countdown');

function updateCountdown() {
  seconds--;
  countdownElement.textContent = seconds;

  if (seconds > 0) {
    setTimeout(updateCountdown, 1000);
  } else {
    countdownElement.textContent = '时间到!';
  }
}

setTimeout(updateCountdown, 1000);

格式化显示时间(分钟:秒)

将秒数转换为 MM:SS 格式,适用于更长的倒计时场景。

js实现读秒

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

let timeLeft = 125; // 2分5秒
const timerElement = document.getElementById('timer');

setInterval(() => {
  timeLeft--;
  timerElement.textContent = formatTime(timeLeft);
}, 1000);

暂停与继续功能

添加按钮控制读秒的暂停和继续功能。

<button id="pause">暂停</button>
<button id="resume">继续</button>
<div id="display">10</div>
let seconds = 10;
let timer;
const display = document.getElementById('display');
const pauseBtn = document.getElementById('pause');
const resumeBtn = document.getElementById('resume');

function startTimer() {
  timer = setInterval(() => {
    seconds--;
    display.textContent = seconds;
    if (seconds <= 0) clearInterval(timer);
  }, 1000);
}

pauseBtn.addEventListener('click', () => clearInterval(timer));
resumeBtn.addEventListener('click', startTimer);

startTimer(); // 初始启动

性能优化建议

对于长时间运行的读秒器,建议使用 Date 对象计算时间差,避免因主线程阻塞导致计时不准。

let endTime = new Date().getTime() + 10000; // 10秒后结束

function update() {
  const now = new Date().getTime();
  const remaining = Math.max(0, Math.floor((endTime - now) / 1000));
  document.getElementById('optimized').textContent = remaining;

  if (remaining > 0) {
    requestAnimationFrame(update);
  }
}

update();

标签: js
分享给朋友:

相关文章

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js实现继承

js实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式系…

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…