当前位置:首页 > JavaScript

用js实现秒表

2026-04-07 17:14:51JavaScript

使用JavaScript实现秒表

以下是使用JavaScript实现秒表功能的完整代码示例,包含开始、暂停、重置功能。

HTML结构

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JavaScript秒表</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            margin: 0;
        }
        .stopwatch {
            text-align: center;
        }
        .display {
            font-size: 3em;
            margin-bottom: 20px;
        }
        button {
            padding: 10px 20px;
            margin: 0 5px;
            font-size: 1em;
            cursor: pointer;
        }
    </style>
</head>
<body>
    <div class="stopwatch">
        <div class="display">00:00:00</div>
        <button id="startBtn">开始</button>
        <button id="pauseBtn">暂停</button>
        <button id="resetBtn">重置</button>
    </div>
    <script src="stopwatch.js"></script>
</body>
</html>

JavaScript实现

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

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

// 格式化时间显示
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}`;
    // 如果需要显示毫秒,使用下面这行
    // return `${hours}:${minutes}:${seconds}.${milliseconds}`;
}

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

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

// 暂停计时
function pauseTimer() {
    if (isRunning) {
        clearInterval(timerInterval);
        isRunning = false;
    }
}

// 重置计时器
function resetTimer() {
    pauseTimer();
    elapsedTime = 0;
    updateDisplay();
}

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

// 初始化显示
updateDisplay();

功能说明

  1. 开始功能:点击开始按钮后,计时器开始运行,显示实时的时间变化。

  2. 暂停功能:点击暂停按钮后,计时器停止运行,但保留当前时间值。

  3. 重置功能:点击重置按钮后,计时器停止并将时间重置为00:00:00。

  4. 时间显示:格式为HH:MM:SS,可以轻松修改为包含毫秒显示。

    用js实现秒表

实现原理

  • 使用Date对象获取精确的时间戳
  • 通过setInterval每10毫秒更新一次显示
  • 计算经过的时间(elapsedTime)作为当前时间与开始时间的差值
  • 使用padStart方法确保时间数字始终显示两位数
  • 使用UTCHours等UTC方法避免时区影响

扩展建议

  1. 添加计次功能,记录多个时间点
  2. 增加本地存储功能,保存历史记录
  3. 添加音效提示
  4. 实现更精确的计时(使用performance.now()替代Date.now())
  5. 添加暗黑模式切换

这个实现简洁高效,适合大多数Web应用场景,可以根据需要进行进一步定制和扩展。

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

相关文章

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js 实现倒计时

js 实现倒计时

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

js实现求导

js实现求导

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

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…

js实现菜单

js实现菜单

实现基本HTML结构 使用HTML创建菜单的基本框架,通常包含<ul>和<li>元素。示例结构如下: <ul id="menu"> <li><…

js图片轮播的实现

js图片轮播的实现

基础图片轮播实现 使用HTML、CSS和JavaScript实现一个简单的图片轮播效果。HTML部分定义轮播容器和图片,CSS负责样式和过渡效果,JavaScript处理逻辑。 <div cl…