当前位置:首页 > JavaScript

js实现秒表盘

2026-03-15 19:19:04JavaScript

js实现秒表盘

js实现秒表盘

以下是用JavaScript实现秒表盘的代码示例,包含开始、暂停、重置功能,并显示毫秒级计时:

HTML结构

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

CSS样式

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

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

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

JavaScript实现

let startTime;
let elapsedTime = 0;
let timerInterval;
const display = document.getElementById('display');
const startBtn = document.getElementById('startBtn');
const pauseBtn = document.getElementById('pauseBtn');
const resetBtn = document.getElementById('resetBtn');

function formatTime(ms) {
  let date = new Date(ms);
  let hours = date.getUTCHours().toString().padStart(2, '0');
  let minutes = date.getUTCMinutes().toString().padStart(2, '0');
  let seconds = date.getUTCSeconds().toString().padStart(2, '0');
  let milliseconds = date.getUTCMilliseconds().toString().padStart(3, '0');
  return `${hours}:${minutes}:${seconds}.${milliseconds}`;
}

function updateDisplay() {
  display.textContent = formatTime(elapsedTime);
}

function startTimer() {
  startTime = Date.now() - elapsedTime;
  timerInterval = setInterval(() => {
    elapsedTime = Date.now() - startTime;
    updateDisplay();
  }, 10);

  startBtn.disabled = true;
  pauseBtn.disabled = false;
  resetBtn.disabled = false;
}

function pauseTimer() {
  clearInterval(timerInterval);
  startBtn.disabled = false;
  pauseBtn.disabled = true;
}

function resetTimer() {
  clearInterval(timerInterval);
  elapsedTime = 0;
  updateDisplay();
  startBtn.disabled = false;
  pauseBtn.disabled = true;
  resetBtn.disabled = true;
}

startBtn.addEventListener('click', startTimer);
pauseBtn.addEventListener('click', pauseTimer);
resetBtn.addEventListener('click', resetTimer);

功能说明

  1. 时间格式化formatTime函数将毫秒数转换为HH:MM:SS.mmm格式
  2. 计时逻辑:使用Date.now()获取精确时间戳,通过计算差值实现毫秒级计时
  3. 控制按钮:三个按钮分别控制开始、暂停和重置功能,并有相应的禁用状态切换

扩展建议

  1. 添加分段计时功能(Lap Time)
  2. 实现本地存储保存计时记录
  3. 添加动画效果增强视觉体验
  4. 支持键盘快捷键操作

这段代码可以直接复制到HTML文件中运行,实现完整的秒表功能。如需更高精度,可以将setInterval的时间间隔调整为更小值(如1ms),但需要注意浏览器的最小时间间隔限制。

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

相关文章

js实现图片轮播

js实现图片轮播

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

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

js实现下拉刷新

js实现下拉刷新

监听触摸事件 通过监听 touchstart、touchmove 和 touchend 事件来检测用户下拉手势。记录触摸起始位置和移动距离。 let startY = 0; let curr…

js实现按钮点击

js实现按钮点击

实现按钮点击的JavaScript方法 HTML按钮元素 在HTML中创建按钮元素,为其添加id或class以便JavaScript选择: <button id="myButton">点…