00:00:00<…">
当前位置:首页 > JavaScript

秒表实现js

2026-04-06 02:50:27JavaScript

使用 JavaScript 实现秒表功能

HTML 结构

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

秒表实现js

<div id="stopwatch">00:00:00</div>
<button id="startBtn">开始</button>
<button id="stopBtn">停止</button>
<button id="resetBtn">重置</button>

CSS 样式(可选)

为秒表添加基本样式:

秒表实现js

#stopwatch {
  font-size: 2em;
  text-align: center;
  margin: 20px;
}
button {
  padding: 10px 20px;
  margin: 5px;
  font-size: 1em;
}

JavaScript 实现

完整的秒表功能实现代码:

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

// 初始化变量
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');
  let milliseconds = Math.floor(date.getUTCMilliseconds() / 10).toString().padStart(2, '0');

  return `${hours}:${minutes}:${seconds}.${milliseconds}`;
}

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

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

  startBtn.disabled = true;
  stopBtn.disabled = false;
}

// 停止计时
function stopTimer() {
  clearInterval(timerInterval);
  startBtn.disabled = false;
  stopBtn.disabled = true;
}

// 重置计时
function resetTimer() {
  clearInterval(timerInterval);
  elapsedTime = 0;
  updateDisplay();
  startBtn.disabled = false;
  stopBtn.disabled = true;
}

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

// 初始化显示
updateDisplay();
stopBtn.disabled = true;

功能说明

  1. 开始按钮:启动计时器,开始累计时间
  2. 停止按钮:暂停计时器,保留当前时间
  3. 重置按钮:将计时器归零,准备重新开始

高级功能扩展

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

// 添加计次功能
const lapBtn = document.getElementById('lapBtn');
const lapsContainer = document.getElementById('laps');

function addLap() {
  const lapTime = document.createElement('div');
  lapTime.textContent = formatTime(elapsedTime);
  lapsContainer.appendChild(lapTime);
}

lapBtn.addEventListener('click', addLap);

注意事项

  1. 使用 Date.now() 获取精确的时间戳
  2. 定时器间隔设置为 10ms 以实现更平滑的显示
  3. 使用 padStart() 方法确保数字始终显示两位
  4. 按钮状态管理防止重复操作

这个实现提供了基本的秒表功能,可以根据需要进一步扩展和定制。

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

相关文章

js实现轮播

js实现轮播

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

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document.…

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js 进度条的实现

js 进度条的实现

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

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…