前端实现简易 计时器

前端实现简易 计时器

<!DOCTYPE html>
<html lang="en">

<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
	<style>
		.box {
			display: flex;
			flex-direction: column;
			align-items: center;
		}
	</style>
</head>

<body>
	<div class="box">
		<h1 class="time">00:00:00</h1>
		<div>
			<button class="start_timing">开始计时</button>
			<button class="stop_timing" disabled>停止计时</button>
			<button class="reset_timing">重置计时器</button>
		</div>
	</div>
	<script>
		const startTiming = document.querySelector('.start_timing')
		const stopTiming = document.querySelector('.stop_timing')
		const resetTiming = document.querySelector('.reset_timing')
		const time = document.querySelector('.time')

		let count = 0
		let timer = null
		// 核心代码
		const formatTime = (seconds) => {
			const hrs = Math.floor(seconds / 3600);
			const mins = Math.floor((seconds % 3600) / 60);
			const secs = Math.floor(seconds % 60);

			return [
				hrs.toString().padStart(2, '0'),
				mins.toString().padStart(2, '0'),
				secs.toString().padStart(2, '0')
			].join(':');
		};

		startTiming.addEventListener('click', () => {
			timer = setInterval(() => {
				count++
				const timeStr = formatTime(count)
				time.innerHTML = timeStr
			}, 1000)
			startTiming.disabled = true
			stopTiming.disabled = false
		})

		stopTiming.addEventListener('click', () => {
			clearInterval(timer)
			startTiming.disabled = false
			stopTiming.disabled = true
		})

		resetTiming.addEventListener('click', () => {
			count = 0
			const timeStr = formatTime(count)
			time.innerHTML = timeStr
			clearInterval(timer)
			startTiming.disabled = false
			stopTiming.disabled = true
		})
	</script>
</body>

</html>

具体功能再二次改造

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值