怎么实现秒表js

实现秒表的JavaScript代码
以下是一个简单的秒表实现,包含开始、暂停、重置功能:
// 获取DOM元素
const display = document.getElementById('display');
const startBtn = document.getElementById('startBtn');
const pauseBtn = document.getElementById('pauseBtn');
const resetBtn = document.getElementById('resetBtn');
// 初始化变量
let startTime = 0;
let elapsedTime = 0;
let timerInterval;
let running = false;
// 格式化时间为HH:MM:SS
function formatTime(time) {
const date = new Date(time);
const hours = date.getUTCHours().toString().padStart(2, '0');
const minutes = date.getUTCMinutes().toString().padStart(2, '0');
const seconds = date.getUTCSeconds().toString().padStart(2, '0');
const milliseconds = Math.floor(date.getUTCMilliseconds() / 10).toString().padStart(2, '0');
return `${hours}:${minutes}:${seconds}.${milliseconds}`;
}
// 开始计时
function startTimer() {
if (!running) {
startTime = Date.now() - elapsedTime;
timerInterval = setInterval(() => {
elapsedTime = Date.now() - startTime;
display.textContent = formatTime(elapsedTime);
}, 10);
running = true;
}
}
// 暂停计时
function pauseTimer() {
if (running) {
clearInterval(timerInterval);
running = false;
}
}
// 重置计时
function resetTimer() {
clearInterval(timerInterval);
running = false;
elapsedTime = 0;
display.textContent = '00:00:00.00';
}
// 添加事件监听
startBtn.addEventListener('click', startTimer);
pauseBtn.addEventListener('click', pauseTimer);
resetBtn.addEventListener('click', resetTimer);
HTML结构
<!DOCTYPE html>
<html>
<head>
<title>秒表</title>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
margin-top: 50px;
}
#display {
font-size: 48px;
margin-bottom: 20px;
}
button {
font-size: 16px;
padding: 10px 20px;
margin: 0 10px;
cursor: pointer;
}
</style>
</head>
<body>
<div id="display">00:00:00.00</div>
<button id="startBtn">开始</button>
<button id="pauseBtn">暂停</button>
<button id="resetBtn">重置</button>
<script src="stopwatch.js"></script>
</body>
</html>
功能说明
- 开始功能:点击开始按钮后,秒表开始计时,精确到百分之一秒
- 暂停功能:点击暂停按钮可以暂停计时,再次点击开始会继续计时
- 重置功能:点击重置按钮将秒表归零,并停止计时
实现原理
- 使用
Date.now()获取当前时间戳,计算经过的时间 - 通过
setInterval每10毫秒更新一次显示 - 使用
clearInterval停止计时器 - 通过
padStart方法确保时间显示始终为两位数格式
扩展功能
如需添加更多功能,可以考虑:
- 记录分段时间
- 添加声音提示
- 保存历史记录
- 响应键盘快捷键
这个实现简单明了,适合初学者理解JavaScript计时器和DOM操作的基本原理。







