当前位置:首页 > JavaScript

怎么实现秒表js

2026-02-02 22:25:26JavaScript

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

功能说明

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

实现原理

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

扩展功能

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

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

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

怎么实现秒表js

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

相关文章

js实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与…

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选…

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…