当前位置:首页 > JavaScript

js实现秒表盘

2026-04-07 12:44:03JavaScript

实现秒表盘的基本思路

使用HTML、CSS和JavaScript创建一个秒表盘,需要定义显示区域、控制按钮和计时逻辑。秒表功能包括开始、暂停、继续和重置。

HTML结构

创建基本的HTML结构,包含显示区域和控制按钮:

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

CSS样式

为秒表盘添加基本样式,使其视觉上更清晰:

.stopwatch {
    text-align: center;
    margin: 50px auto;
    font-family: Arial, sans-serif;
}

.display {
    font-size: 48px;
    margin-bottom: 20px;
}

button {
    padding: 10px 20px;
    margin: 5px;
    font-size: 16px;
    cursor: pointer;
}

JavaScript逻辑

实现秒表的计时和控制功能:

const display = document.querySelector('.display');
const startBtn = document.querySelector('.start');
const pauseBtn = document.querySelector('.pause');
const resetBtn = document.querySelector('.reset');

let startTime;
let elapsedTime = 0;
let timerInterval;

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');
    return `${hours}:${minutes}:${seconds}`;
}

function updateDisplay() {
    display.textContent = formatTime(elapsedTime);
}

startBtn.addEventListener('click', () => {
    if (!timerInterval) {
        startTime = Date.now() - elapsedTime;
        timerInterval = setInterval(() => {
            elapsedTime = Date.now() - startTime;
            updateDisplay();
        }, 10);
    }
});

pauseBtn.addEventListener('click', () => {
    clearInterval(timerInterval);
    timerInterval = null;
});

resetBtn.addEventListener('click', () => {
    clearInterval(timerInterval);
    timerInterval = null;
    elapsedTime = 0;
    updateDisplay();
});

功能扩展

添加毫秒显示以提高精度:

js实现秒表盘

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}.${milliseconds}`;
}

注意事项

  • 使用Date.now()获取当前时间戳,避免new Date()的性能开销。
  • 使用padStart方法确保时间显示始终为两位数。
  • 清除定时器时将其设置为null,以便后续判断秒表状态。
  • 更新显示的时间间隔设置为10毫秒,以平衡性能和显示精度。

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

相关文章

js 实现倒计时

js 实现倒计时

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

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js实现滚动

js实现滚动

实现滚动效果的方法 在JavaScript中实现滚动效果可以通过多种方式完成,以下是一些常见的方法: 使用window.scrollTo() window.scrollTo()方法可以将页面滚动到指…

js实现 拖动

js实现 拖动

实现拖动的步骤 HTML 结构 创建一个可拖动的元素和一个放置区域: <div id="draggable" draggable="true">拖动我</div> <d…