首页 > 编程 > JavaScript > 正文

原生JS实现的简单小钟表功能示例

2019-11-19 13:06:49
字体:
来源:转载
供稿:网友

本文实例讲述了原生JS实现的简单小钟表功能。分享给大家供大家参考,具体如下:

先来看看运行效果:

完整代码:

<!DOCTYPE html><html>  <head>    <meta charset="UTF-8">    <title>www.VeVB.COm 钟表</title>    <style type="text/css">      body {       background-color:#00A2D4;      }      .clock {        width: 200px;        height: 200px;        background: -webkit-radial-gradient(#3b3b3b, #000);        background: radial-gradient(#2E3F50, #0E1B29);        box-shadow: inset 0px 0px 30px #131313, 0px 2px 18px rgba(0,0,0,0.5);        border: 6px solid #172839;        border-radius: 106px;        margin: auto;        position: absolute;        top: 0; bottom: 0; left: 0; right: 0;      }      .hour-hand {        width: 4px;        height: 55px;        background: #fff;        box-shadow: 0px 0px 7px #000;        position: absolute;        top: 45px;        left: 98px;      }      .minute-hand {        width: 4px;        height: 80px;        background: #fff;        box-shadow: 0px 0px 4px #000;        position: absolute;        top: 20px;        left: 98px;      }      .second-hand {        width: 2px;        height: 80px;        background: #bbb;        box-shadow: 0px 0px 7px #000;        position: absolute;        top: 20px;        left: 99px;      }      .pin {        width: 10px;        height: 10px;        background: #222;        border-radius: 10px;        margin: auto;        position: absolute;        top: 0; bottom: 0; left: 0; right: 0;      }      .hour-hand,      .minute-hand,      .second-hand {        -webkit-transform-origin: 50% 100%;        -moz-transform-origin: 50% 100%;        -o-transform-origin: 50% 100%;        -ms-transform-origin: 50% 100%;        transform-origin: 50% 100%;      }      .circle{        width:20px;        height:20px;        line-height:20px;        text-align:center;        color:#fff;        position: absolute;      }    </style>  </head>  <body>    <div class="clock">      <div class="minute-hand"></div>      <div class="hour-hand"></div>      <div class="second-hand"></div>      <div class="pin"></div>      <div class="circle">6</div>      <div class="circle">5</div>      <div class="circle">4</div>      <div class="circle">3</div>      <div class="circle">2</div>      <div class="circle">1</div>      <div class="circle">12</div>      <div class="circle">11</div>      <div class="circle">10</div>      <div class="circle">9</div>      <div class="circle">8</div>      <div class="circle">7</div>    </div>    <div class="time"></div>    <script type="text/javascript">      window.onload=function(){        setInterval(function(){          var dt = new Date();          var sec_deg = dt.getSeconds() * (360/60);          var min_deg = dt.getMinutes() * (360/60);          var hr_deg = dt.getHours() * (360/12) + dt.getMinutes() * (360/60/12);          document.querySelector(".clock .second-hand").style.cssText='-webkit-transform:rotate(' + sec_deg + 'deg)','-moz-transform:rotate(' + sec_deg + 'deg)', '-o-transform:rotate(' + sec_deg + 'deg)', '-ms-transform:rotate(' + sec_deg + 'deg)', 'transform:rotate(' + sec_deg + 'deg)';          document.querySelector('.clock .minute-hand').style.cssText='-webkit-transform:rotate(' + min_deg + 'deg)', '-moz-transform:rotate(' + min_deg + 'deg)', '-o-transform:rotate(' + min_deg + 'deg)', '-ms-transform:rotate(' + min_deg + 'deg)', 'transform:rotate(' + min_deg + 'deg)';          document.querySelector('.clock .hour-hand').style.cssText='-webkit-transform:rotate(' + hr_deg + 'deg)', '-moz-transform:rotate(' + hr_deg + 'deg)', '-o-transform:rotate(' + hr_deg + 'deg)', '-ms-transform:rotate(' + hr_deg + 'deg)', 'transform:rotate(' + hr_deg + 'deg)';         }, 1000);        var dx=90,          dy=90,          s=87,//半径          x=Math.sin(0),          y=Math.cos(0),          dig=2*Math.PI/12;        var circle=document.querySelectorAll(".circle");        for(var i=0;i<12;i++){          var x=Math.sin(i*dig);          var y=Math.cos(i*dig);          var topValue=Number(dy+y*s),            leftValue=Number(dx+x*s);          circle[i].style.top=topValue+"px";          circle[i].style.left=leftValue+"px";        }      }    </script>  </body></html>

感兴趣的朋友可使用在线HTML/CSS/JavaScript代码运行工具http://tools.VeVB.COm/code/HtmlJsRun测试一下运行效果。

PS:这里再为大家推荐几款时间及日期相关工具供大家参考使用:

在线日期/天数计算器:
http://tools.VeVB.COm/jisuanqi/date_jisuanqi

在线日期计算器/相差天数计算器:
http://tools.VeVB.COm/jisuanqi/datecalc

在线日期天数差计算器:
http://tools.VeVB.COm/jisuanqi/onlinedatejsq

Unix时间戳(timestamp)转换工具:
http://tools.VeVB.COm/code/unixtime

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript时间与日期操作技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结

希望本文所述对大家JavaScript程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表