当前位置:首页 > JavaScript

怎么实现秒表js

2026-04-07 16:13:01JavaScript

实现秒表的 JavaScript 代码

以下是一个简单的秒表实现,包含开始、暂停、重置功能,使用 HTML 和 JavaScript 完成。

HTML 结构

<div id="stopwatch">
  <div id="display">00:00:00</div>
  <button id="startBtn">开始</button>
  <button id="pauseBtn">暂停</button>
  <button id="resetBtn">重置</button>
</div>

CSS 样式(可选)

#stopwatch {
  text-align: center;
  margin: 50px auto;
  font-family: Arial, sans-serif;
}

#display {
  font-size: 48px;
  margin-bottom: 20px;
}

button {
  padding: 10px 20px;
  margin: 0 5px;
  font-size: 16px;
  cursor: pointer;
}

JavaScript 实现

// 获取DOM元素
const display = document.getElementById('display');
const startBtn = document.getElementById('startBtn');
const pauseBtn = document.getElementById('pauseBtn');
const resetBtn = document.getElementById('resetBtn');

let startTime;
let elapsedTime = 0;
let timerInterval;

// 格式化时间为HH:MM:SS
function formatTime(time) {
  const hours = Math.floor(time / 3600000);
  const minutes = Math.floor((time % 3600000) / 60000);
  const seconds = Math.floor((time % 60000) / 1000);

  return (
    String(hours).padStart(2, '0') + ':' +
    String(minutes).padStart(2, '0') + ':' +
    String(seconds).padStart(2, '0')
  );
}

// 更新显示
function updateDisplay() {
  const currentTime = Date.now();
  elapsedTime = currentTime - startTime;
  display.textContent = formatTime(elapsedTime);
}

// 开始计时
startBtn.addEventListener('click', () => {
  startTime = Date.now() - elapsedTime;
  timerInterval = setInterval(updateDisplay, 1000);
  startBtn.disabled = true;
  pauseBtn.disabled = false;
});

// 暂停计时
pauseBtn.addEventListener('click', () => {
  clearInterval(timerInterval);
  startBtn.disabled = false;
  pauseBtn.disabled = true;
});

// 重置计时
resetBtn.addEventListener('click', () => {
  clearInterval(timerInterval);
  elapsedTime = 0;
  display.textContent = '00:00:00';
  startBtn.disabled = false;
  pauseBtn.disabled = true;
});

// 初始化按钮状态
pauseBtn.disabled = true;

功能说明

  1. 开始功能:点击开始按钮后,计时器开始运行,显示从00:00:00开始递增的时间。
  2. 暂停功能:点击暂停按钮可以停止计时,再次点击开始可以继续计时。
  3. 重置功能:点击重置按钮将计时器归零,并停止当前计时。

高级功能扩展

如果需要更精确的计时(毫秒级),可以修改以下部分:

怎么实现秒表js

// 修改updateDisplay函数,增加毫秒显示
function formatTime(time) {
  const hours = Math.floor(time / 3600000);
  const minutes = Math.floor((time % 3600000) / 60000);
  const seconds = Math.floor((time % 60000) / 1000);
  const milliseconds = Math.floor((time % 1000) / 10);

  return (
    String(hours).padStart(2, '0') + ':' +
    String(minutes).padStart(2, '0') + ':' +
    String(seconds).padStart(2, '0') + '.' +
    String(milliseconds).padStart(2, '0')
  );
}

// 更新interval时间为更短间隔
timerInterval = setInterval(updateDisplay, 10);

注意事项

  1. 代码使用Date.now()获取当前时间戳,确保计时准确性。
  2. padStart()方法用于确保时间显示始终为两位数。
  3. 按钮状态管理防止用户误操作(如重复点击开始按钮)。
  4. 使用clearInterval()确保计时器正确停止,避免内存泄漏。

标签: 秒表js
分享给朋友:

相关文章

js实现列表

js实现列表

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

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…

js实现上传文件

js实现上传文件

文件上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现文件上传功能。 <input type="file"…

js分页实现

js分页实现

分页的基本原理 分页的核心是通过计算当前页码和数据偏移量,从服务器或本地数据中截取对应范围的数据进行展示。通常需要以下参数:当前页码(currentPage)、每页条数(pageSize)、总数据量(…

js 实现图片轮播

js 实现图片轮播

基础实现方案 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS负责样式布局,JavaScript处理轮播逻辑。 <div class="…