JavaScript实现流动式动态时钟效果

作者:异步漫步

时间:2026-10-30

浏览:218

本文介绍如何使用JavaScript结合CSS样式实现流动式动态时钟效果。通过获取当前小时、分钟和秒数,利用绝对定位和动态计算偏移量,使时分秒以平滑流动的方式在屏幕上显示。代码包含HTML结构、CSS样式及JS逻辑,适合前端初学者参考学习。

文章目录

JavaScript流动式时间显示实现

本文分享了一段使用JavaScript实现流动式时间显示的完整代码,供读者参考学习。

具体运行效果如下图所示:

JavaScript流动式时间显示实现

核心实现代码如下:


<!DOCTYPE html>
<html>

 <head>
  <title>js流动时间</title>
  <style type="text/css">
   #divH,
   #divM,
   #divS {
    font-family: consal;
    line-height: 30px;
    position: absolute;
    left: 0px;
    width: 5760px;
    color: white;
   }

   #divH {
    background-color: #606;
   }

   #divM {
    background-color: #060;
   }

   #divS {
    background-color: #006;
   }

   #divH div,
   #divM div,
   #divS div {
    float: left;
    border-right: solid 1px gray;
    text-align: center;
   }
  </style>
 </head>

 <body>
  <div style="font-family:Arial; width:400px; font-size:24px;">
   <div id="divTime" style="text-align:center; line-height:1.5;">Time</div>
   <div style="outline:solid 5px gray; position:relative; overflow:hidden; height:90px;">
    <div id="divH" style="top:0px;"></div>
    <div id="divM" style="top:30px;"></div>
    <div id="divS" style="top:60px;"></div>
    <div id="divLine" style="position:absolute; top:0px; left:50%; border-left:solid 1px red; height:90px;"></div>
   </div>
  </div>
  <script type="text/javascript">
   var divH = document.getElementById('divH');
   var divM = document.getElementById('divM');
   var divS = document.getElementById('divS');
   var divTime = document.getElementById('divTime');
   var aw = 2880;
   var ww = 400;
   var w = aw / 24;
   for (var i = 0; i < 48; i++) {
    var div = document.createElement('div');
    div.style.width = (w - 1) + 'px';
    div.innerHTML = i % 24;
    divH.appendChild(div);
   }
   w = aw / 60;
   for (var i = 0; i < 120; i++) {
    var div = document.createElement('div');
    div.style.width = (w - 1) + 'px';
    div.innerHTML = i % 60;
    divM.appendChild(div);
   }
   w = aw / 60;
   for (var i = 0; i < 120; i++) {
    var div = document.createElement('div');
    div.style.width = (w - 1) + 'px';
    div.innerHTML = i % 60;
    divS.appendChild(div);
   }
   window.setInterval(run, 20);

   function run() {
    var dt = new Date();
    var h = dt.getHours();
    var m = dt.getMinutes();
    var s = dt.getSeconds();
    var f = dt.getMilliseconds();
    divH.style.left = ((h > 12) ? 0 : -aw) + ww / 2 + (h * -120) - m * 2 + 'px';
    l = 0;
    divM.style.left = ((m > 30) ? 0 : -aw) + ww / 2 + (m * -48) - s / 1.2 + 'px';
    l = 0;
    divS.style.left = ((s > 30) ? 0 : -aw) + ww / 2 + (s * -48) - f * 48 / 1000 + 'px';
    divTime.innerHTML = 'Time ' + h + ':' + m + ":" + s;
   }
  </script>
 </body>

</html>

以上就是JavaScript流动式时间显示的全部内容,希望对读者掌握相关程序设计有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章