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);
功能说明
- 时间格式化:
formatTime函数将毫秒数转换为HH:MM:SS.mmm格式 - 计时逻辑:使用
Date.now()获取精确时间戳,通过计算差值实现毫秒级计时 - 控制按钮:三个按钮分别控制开始、暂停和重置功能,并有相应的禁用状态切换
扩展建议
- 添加分段计时功能(Lap Time)
- 实现本地存储保存计时记录
- 添加动画效果增强视觉体验
- 支持键盘快捷键操作
这段代码可以直接复制到HTML文件中运行,实现完整的秒表功能。如需更高精度,可以将setInterval的时间间隔调整为更小值(如1ms),但需要注意浏览器的最小时间间隔限制。






