基于JS实现的酷炫带进度倒计时的圆形时钟

基于JS创建的一个带有进度倒计时的圆形时钟,它能直观地表示时间的流逝,该方法可计算小时、分钟和秒的时间百分比,动态的显示时间,可以在需要视觉效果和动态时钟显示的项目中使用它,能够直观地表示时间的进展,通过直观的界面帮助用户跟踪小时、分钟和秒。

下面展示如何创建带进度倒计时的圆形时钟

1.首先,创建一个 HTML 文件并设置基本结构。为时钟添加一个容器。

<svg viewBox="0 0 100 100">
	<g transform="scale(-1 1) rotate(-90 0 100)">
		<g fill="none" stroke="rgba(0,0,0,0.1)">
			<circle cx="50" cy="50" r="46" stroke-width="8" />
			<circle cx="50" cy="50" r="46" stroke-width="6" />
			<circle cx="50" cy="50" r="38" stroke-width="7" />
			<circle cx="50" cy="50" r="38" stroke-width="5" />
			<circle cx="50" cy="50" r="30" stroke-width="6" />
			<circle cx="50" cy="50" r="30" stroke-width="4" />
			<circle cx="50" cy="50" r="22" stroke-width="5" />
			<circle cx="50" cy="50" r="22" stroke-width="3" />
			<circle cx="50" cy="50" r="16" stroke-width="4" />
			<circle cx="50" cy="50" r="16" stroke-width="2" />
		</g>
		<g id="timeHere">
			<!-- time circles pasted here -->
		</g>
		/*这里仅展示部分示例代码,下载后查看完整版代码*/
	</g>
</svg>

2.使用 CSS 创建时钟和进度元素的样式。该代码提供了基本样式;您可以根据自己的设计偏好进行自定义。

/*这里仅展示部分示例代码,下载后查看完整版代码*/
svg {
	max-height: 90vh;
	max-width: 90vw;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

3.最后,在 <script> 标记或外部 JS 文件之间添加以下 JavaScript 函数,以启用时钟功能。

/*这里仅展示部分示例代码,下载后查看完整版代码*/
function getTimePercentages() {
	const now = new Date();
	const currentHour = now.getHours();
	const currentMinute = now.getMinutes();
	const currentSecond = now.getSeconds();
	// Calculate the remaining minutes in the hour
	const remainingMinutes = currentMinute;

	const hourPercentage = (currentHour / 24) * 100;
	const hour12Percentage = ((currentHour % 12) / 12) * 100;
	const minutePercentage = (currentMinute / 60) * 100;
	const secondPercentage = (currentSecond / 60) * 100;
	// Calculate the percentage of minutes left in the hour
	const minutesLeftPercentage = (remainingMinutes / 60) * 100;

	return {
		hour: hourPercentage,
		hour12: hour12Percentage,
		minute: minutePercentage,
		minutes: minutesLeftPercentage,
		second: secondPercentage
	};
}

本指南提供了使用 HTML、CSS 和 JavaScript 实现圆形时钟的基本方法。请根据具体项目要求自定义样式和功能。

模板目录结构如下: