00:00:00
当前位置:首页 > JavaScript

秒表实现js

2026-04-06 02:50:27JavaScript

使用 JavaScript 实现秒表功能

HTML 结构

创建一个简单的 HTML 结构,包含显示区域和控制按钮:

<div id="stopwatch">00:00:00</div>
<button id="startBtn">开始</button>
<button id="stopBtn">停止</button>
<button id="resetBtn">重置</button>

CSS 样式(可选)

为秒表添加基本样式:

#stopwatch {
  font-size: 2em;
  text-align: center;
  margin: 20px;
}
button {
  padding: 10px 20px;
  margin: 5px;
  font-size: 1em;
}

JavaScript 实现

完整的秒表功能实现代码:

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

// 初始化变量
let startTime;
let elapsedTime = 0;
let timerInterval;

// 格式化时间显示
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 = Math.floor(date.getUTCMilliseconds() / 10).toString().padStart(2, '0');

  return `${hours}:${minutes}:${seconds}.${milliseconds}`;
}

// 更新显示
function updateDisplay() {
  display.textContent = formatTime(elapsedTime);
}

// 开始计时
function startTimer() {
  startTime = Date.now() - elapsedTime;
  timerInterval = setInterval(function() {
    elapsedTime = Date.now() - startTime;
    updateDisplay();
  }, 10);

  startBtn.disabled = true;
  stopBtn.disabled = false;
}

// 停止计时
function stopTimer() {
  clearInterval(timerInterval);
  startBtn.disabled = false;
  stopBtn.disabled = true;
}

// 重置计时
function resetTimer() {
  clearInterval(timerInterval);
  elapsedTime = 0;
  updateDisplay();
  startBtn.disabled = false;
  stopBtn.disabled = true;
}

// 添加事件监听
startBtn.addEventListener('click', startTimer);
stopBtn.addEventListener('click', stopTimer);
resetBtn.addEventListener('click', resetTimer);

// 初始化显示
updateDisplay();
stopBtn.disabled = true;

功能说明

  1. 开始按钮:启动计时器,开始累计时间
  2. 停止按钮:暂停计时器,保留当前时间
  3. 重置按钮:将计时器归零,准备重新开始

高级功能扩展

如需添加更多功能,可以考虑以下扩展:

秒表实现js

// 添加计次功能
const lapBtn = document.getElementById('lapBtn');
const lapsContainer = document.getElementById('laps');

function addLap() {
  const lapTime = document.createElement('div');
  lapTime.textContent = formatTime(elapsedTime);
  lapsContainer.appendChild(lapTime);
}

lapBtn.addEventListener('click', addLap);

注意事项

  1. 使用 Date.now() 获取精确的时间戳
  2. 定时器间隔设置为 10ms 以实现更平滑的显示
  3. 使用 padStart() 方法确保数字始终显示两位
  4. 按钮状态管理防止重复操作

这个实现提供了基本的秒表功能,可以根据需要进一步扩展和定制。

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

相关文章

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swipe…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js如何实现继承

js如何实现继承

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

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…