当前位置:首页 > JavaScript

用js实现秒表

2026-03-15 23:52:41JavaScript

实现秒表功能

使用JavaScript实现秒表功能可以通过以下步骤完成。秒表需要具备开始、暂停、重置功能,并显示时、分、秒和毫秒。

用js实现秒表

HTML结构

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

用js实现秒表

<div id="stopwatch">
    <div id="display">00:00:00:000</div>
    <button id="start">开始</button>
    <button id="pause">暂停</button>
    <button id="reset">重置</button>
</div>

CSS样式

为秒表添加基本样式:

#stopwatch {
    text-align: center;
    font-family: Arial, sans-serif;
}
#display {
    font-size: 2em;
    margin: 20px;
}
button {
    padding: 10px 20px;
    margin: 5px;
    font-size: 1em;
}

JavaScript逻辑

实现秒表的核心功能:

let startTime;
let elapsedTime = 0;
let timerInterval;
const display = document.getElementById('display');
const startButton = document.getElementById('start');
const pauseButton = document.getElementById('pause');
const resetButton = document.getElementById('reset');

function formatTime(time) {
    let hours = Math.floor(time / 3600000);
    let minutes = Math.floor((time % 3600000) / 60000);
    let seconds = Math.floor((time % 60000) / 1000);
    let milliseconds = Math.floor(time % 1000);

    return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}:${milliseconds.toString().padStart(3, '0')}`;
}

function startTimer() {
    startTime = Date.now() - elapsedTime;
    timerInterval = setInterval(function() {
        elapsedTime = Date.now() - startTime;
        display.textContent = formatTime(elapsedTime);
    }, 10);
    startButton.disabled = true;
    pauseButton.disabled = false;
}

function pauseTimer() {
    clearInterval(timerInterval);
    startButton.disabled = false;
    pauseButton.disabled = true;
}

function resetTimer() {
    clearInterval(timerInterval);
    elapsedTime = 0;
    display.textContent = '00:00:00:000';
    startButton.disabled = false;
    pauseButton.disabled = false;
}

startButton.addEventListener('click', startTimer);
pauseButton.addEventListener('click', pauseTimer);
resetButton.addEventListener('click', resetTimer);

// 初始状态
pauseButton.disabled = true;

功能说明

  • formatTime函数将毫秒转换为格式化的时间字符串(HH:MM:SS:MS)
  • startTimer函数记录开始时间并启动定时器,每10毫秒更新显示
  • pauseTimer函数停止定时器,保留当前时间
  • resetTimer函数重置所有状态,恢复初始显示

注意事项

  • 定时器间隔设置为10毫秒以获得更流畅的毫秒显示
  • 使用padStart方法确保时间数字始终显示两位数
  • 按钮状态管理确保操作逻辑正确(如开始后禁用开始按钮)

这个实现提供了基本的秒表功能,可以根据需要扩展更多特性如计次功能、更精确的时间显示等。

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

相关文章

js实现倒计时

js实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时功能可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是几种常见的实现方式: 使用 setInterva…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似: func…

js实现交换

js实现交换

交换变量的方法 在JavaScript中,交换两个变量的值有多种方法。以下是常见的几种实现方式: 使用临时变量 通过引入一个临时变量来存储其中一个变量的值,实现交换: let a = 1; le…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 const…

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…