…">
当前位置:首页 > CSS

css3制作时钟

2026-02-26 21:38:24CSS

CSS3 制作时钟

使用 CSS3 和少量 JavaScript 可以创建一个动态的时钟。以下是实现步骤和代码示例:

css3制作时钟

时钟的 HTML 结构

<div class="clock">
  <div class="hour-hand"></div>
  <div class="minute-hand"></div>
  <div class="second-hand"></div>
  <div class="center-dot"></div>
</div>

时钟的 CSS 样式

.clock {
  width: 200px;
  height: 200px;
  border: 10px solid #333;
  border-radius: 50%;
  position: relative;
  margin: 50px auto;
  background: #fff;
}

.hour-hand, .minute-hand, .second-hand {
  position: absolute;
  background: #333;
  transform-origin: bottom center;
  left: 50%;
  bottom: 50%;
}

.hour-hand {
  width: 6px;
  height: 60px;
  margin-left: -3px;
}

.minute-hand {
  width: 4px;
  height: 80px;
  margin-left: -2px;
}

.second-hand {
  width: 2px;
  height: 90px;
  margin-left: -1px;
  background: red;
}

.center-dot {
  position: absolute;
  width: 12px;
  height: 12px;
  background: #333;
  border-radius: 50%;
  left: 50%;
  top: 50%;
  margin-left: -6px;
  margin-top: -6px;
}

使用 JavaScript 实现动态效果

function updateClock() {
  const now = new Date();
  const hours = now.getHours() % 12;
  const minutes = now.getMinutes();
  const seconds = now.getSeconds();

  const hourDegrees = (hours * 30) + (minutes * 0.5);
  const minuteDegrees = minutes * 6;
  const secondDegrees = seconds * 6;

  document.querySelector('.hour-hand').style.transform = `rotate(${hourDegrees}deg)`;
  document.querySelector('.minute-hand').style.transform = `rotate(${minuteDegrees}deg)`;
  document.querySelector('.second-hand').style.transform = `rotate(${secondDegrees}deg)`;
}

setInterval(updateClock, 1000);
updateClock(); // 初始化时钟

添加时钟刻度

如果需要更真实的时钟效果,可以添加刻度:

.clock::after {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: 
    linear-gradient(0deg, transparent 45%, #333 45%, #333 55%, transparent 55%),
    linear-gradient(30deg, transparent 45%, #333 45%, #333 55%, transparent 55%),
    linear-gradient(60deg, transparent 45%, #333 45%, #333 55%, transparent 55%),
    linear-gradient(90deg, transparent 45%, #333 45%, #333 55%, transparent 55%),
    linear-gradient(120deg, transparent 45%, #333 45%, #333 55%, transparent 55%),
    linear-gradient(150deg, transparent 45%, #333 45%, #333 55%, transparent 55%),
    linear-gradient(180deg, transparent 45%, #333 45%, #333 55%, transparent 55%),
    linear-gradient(210deg, transparent 45%, #333 45%, #333 55%, transparent 55%),
    linear-gradient(240deg, transparent 45%, #333 45%, #333 55%, transparent 55%),
    linear-gradient(270deg, transparent 45%, #333 45%, #333 55%, transparent 55%),
    linear-gradient(300deg, transparent 45%, #333 45%, #333 55%, transparent 55%),
    linear-gradient(330deg, transparent 45%, #333 45%, #333 55%, transparent 55%);
}

动画效果优化

为秒针添加平滑过渡效果:

.second-hand {
  transition: transform 0.2s cubic-bezier(0.4, 2.3, 0.3, 1);
}

将以上代码整合到 HTML 文件中,即可实现一个完整的 CSS3 时钟。时钟会每秒自动更新,显示当前时间。

css3制作时钟

标签: 时钟
分享给朋友:

相关文章

css3制作时钟

css3制作时钟

使用CSS3制作时钟 通过CSS3的动画和变换功能,可以创建一个动态的时钟效果。以下是实现方法: HTML结构 创建一个基本的HTML结构,包含时钟的容器和指针元素: <div clas…

vue实现简易时钟

vue实现简易时钟

实现简易时钟的步骤 在Vue中实现简易时钟可以通过动态更新当前时间来实现。以下是具体实现方法: 创建Vue组件 新建一个Vue组件文件Clock.vue,包含模板、脚本和样式部分。 <tem…

vue实现动态时钟思路

vue实现动态时钟思路

实现动态时钟的思路 使用Vue实现动态时钟的核心在于实时更新显示的时间,并通过数据绑定自动渲染到页面上。以下是具体实现方法: 使用Date对象获取当前时间 通过JavaScript的Date对象可以…

vue实现电子时钟

vue实现电子时钟

实现电子时钟的基本思路 使用Vue实现电子时钟的核心在于动态更新当前时间,并通过数据绑定将时间显示在页面上。需要定时获取系统时间并格式化输出。 创建Vue实例与数据绑定 在Vue实例的data中定义…

css3制作时钟样式

css3制作时钟样式

使用CSS3制作时钟样式 制作一个CSS3时钟样式可以通过伪元素、动画和变换来实现。以下是一个完整的实现方法: HTML结构 <div class="clock"> <div…

css时钟制作

css时钟制作

CSS时钟制作方法 制作一个纯CSS时钟无需JavaScript,利用CSS动画和伪元素实现时间显示。以下是具体实现步骤: HTML结构 <div class="clock">…