当前位置:首页 > 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 实现继承

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

js实现乘

js实现乘

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

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。 &…

js 实现图片 放大

js 实现图片 放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性可以实现图片的平滑放大效果。结合 JavaScript 监听鼠标事件控制放大状态: con…

js 实现超链接

js 实现超链接

使用 HTML 的 <a> 标签 在 JavaScript 中动态创建超链接可以通过操作 DOM 实现。通过 document.createElement 创建一个 <a> 元…

vue.js实现翻转

vue.js实现翻转

Vue.js 实现翻转效果 在 Vue.js 中实现翻转效果可以通过 CSS 过渡或动画结合 Vue 的响应式特性来完成。以下是几种常见的实现方法: 使用 CSS Transition 和 Vue…