当前位置:首页 > JavaScript

怎么实现秒表js

2026-02-02 22:25:26JavaScript

实现秒表的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>

功能说明

  1. 开始功能:点击开始按钮后,秒表开始计时,精确到百分之一秒
  2. 暂停功能:点击暂停按钮可以暂停计时,再次点击开始会继续计时
  3. 重置功能:点击重置按钮将秒表归零,并停止计时

实现原理

  1. 使用Date.now()获取当前时间戳,计算经过的时间
  2. 通过setInterval每10毫秒更新一次显示
  3. 使用clearInterval停止计时器
  4. 通过padStart方法确保时间显示始终为两位数格式

扩展功能

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

怎么实现秒表js

  • 记录分段时间
  • 添加声音提示
  • 保存历史记录
  • 响应键盘快捷键

这个实现简单明了,适合初学者理解JavaScript计时器和DOM操作的基本原理。

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

相关文章

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的J…

js实现跑马灯

js实现跑马灯

实现跑马灯效果 使用HTML和JavaScript可以轻松实现跑马灯效果。以下是两种常见的实现方式: HTML结构 <div id="marquee"> <span>…