返回

让网页动起来,CSS3 时钟特效,分分钟做个动态网页

前端

css3 时钟特效


今天咱们做一个在网页做一个是时钟,大家可能会在自己的项目中用到,可以先看一下gif的动画,不是不是很清楚,下面会有代码块。简单的看一下 html 结构,我在这里用静态样式写了一个刻度,大家可以看下图片,这是我写的代码,用 CSS 画了一个圆形,然后添加了刻度和指针。

<!DOCTYPE html>
<html>
<head>
  
  <style>
    body {
      background-color: black;
    }

    #clock {
      width: 200px;
      height: 200px;
      border: 10px solid white;
      border-radius: 50%;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }

    #clock-face {
      width: 200px;
      height: 200px;
      background-color: black;
      border: 10px solid white;
      border-radius: 50%;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }

    #clock-hour-hand {
      width: 10px;
      height: 80px;
      background-color: white;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%) rotate(0deg);
    }

    #clock-minute-hand {
      width: 5px;
      height: 100px;
      background-color: white;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%) rotate(0deg);
    }

    #clock-second-hand {
      width: 2px;
      height: 120px;
      background-color: red;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%) rotate(0deg);
    }
  </style>
</head>
<body>
  <div id="clock">
    <div id="clock-face"></div>
    <div id="clock-hour-hand"></div>
    <div id="clock-minute-hand"></div>
    <div id="clock-second-hand"></div>
  </div>

  <script>
    var clock = document.getElementById('clock');
    var clockFace = document.getElementById('clock-face');
    var clockHourHand = document.getElementById('clock-hour-hand');
    var clockMinuteHand = document.getElementById('clock-minute-hand');
    var clockSecondHand = document.getElementById('clock-second-hand');

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

      var hourDegrees = hours * 360 / 12 + minutes / 60 * 30;
      var minuteDegrees = minutes * 360 / 60 + seconds / 60 * 6;
      var secondDegrees = seconds * 360 / 60;

      clockHourHand.style.transform = 'translate(-50%, -50%) rotate(' + hourDegrees + 'deg)';
      clockMinuteHand.style.transform = 'translate(-50%, -50%) rotate(' + minuteDegrees + 'deg)';
      clockSecondHand.style.transform = 'translate(-50%, -50%) rotate(' + secondDegrees + 'deg)';
    }

    setInterval(updateClock, 1000);
  </script>
</body>
</html>

为了让时钟动起来,我使用了 JavaScript 来更新指针的位置。这个脚本每秒运行一次,获取当前时间,然后计算指针应该旋转的角度。最后,使用 transform 属性将指针旋转到正确的位置。

这个时钟特效很简单,但它很有效。它可以在你的网页上添加一个有趣和动态的元素。你也可以根据自己的需要对代码进行修改,以创建不同的时钟样式。