您当前的位置:首页 > 网站建设 > javascript
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax | jQuery | 小程序 |

JavaScript实现简单钟表时钟

51自学网 2022-02-21 13:38:38
  javascript

本文实例为大家分享了JavaScript实现简单钟表时钟的具体代码,供大家参考,具体内容如下

效果图:

主要思想:

1.先画一个圆表盘。

2.再用js循环画刻度(每一个刻度都是li标签)。
3.再画时分秒指针。

4.再用JS让指针动起来。

代码中有详细的注释可以直接看代码。

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>Document</title></head><body>    <style id="style">        ul{            list-style: none;        }        #circle{            width: 200px;            height: 200px;            border-radius: 100px;            border: 1px solid black;        }        #kedu li{            width: 1px;            height: 6px;            border-radius: 10px;            background-color: black;            transform-origin: center 101px;/*设置li标签的旋转中心和旋转半径。*/            position: absolute;            left: 109px;            top: 9px;        }        #kedu li:nth-of-type(5n+1){            height: 12px;            width: 2px;        }        /* 秒针的绘制,用transform把div绘制成线条,后面的指针都是在这样。 */        #second{            width: 2px;            height: 80px;            background-color: red;            transform: scaleY(1);            position: absolute;            left: 108px;            top: 30px;            transform-origin: bottom; /*设置它们的旋转中心,transform-origin: bottom;意思是以它们的底部为中心旋转。*/        }        #min{            width: 2px;            height: 65px;            background-color: gray;            transform: scaleY(1);            position: absolute;            left: 108px;            top: 45px;            transform-origin: bottom;        }        #hour{            width: 2px;            height: 50px;            background-color: black;            transform: scaleY(1);            position: absolute;            left: 108px;            top: 60px;            transform-origin: bottom;        }        #p12{            position: absolute;            left: 100px;            top: 0px;        }        #p3{            position: absolute;            left: 190px;            top: 84px;        }        #p6{            position: absolute;            left: 105px;            top: 165px;        }        #p9{            position: absolute;            left: 20px;            top: 82px;        }    </style>    <div id="circle">        <ul id="kedu"></ul>    </div>    <div id="second"></div><!--绘制秒针-->    <div id="min"></div><!--绘制分针-->    <div id="hour"></div><!--绘制时针-->    <p id="p12">12</p>    <p id="p3">3</p>    <p id="p6">6</p>    <p id="p9">9</p>    <script>        //绘制时钟的刻度 动态创建60个li标签。        function li(){            let ul=document.getElementById("kedu");//先获取到ul,因为要在ul下创建li。            let css;//用来存li的style样式中的CSS设置。            for(let i=0;i<60;i++){                css+=`#kedu li:nth-of-type(${i+1}){transform:rotate(${i*6}deg)}`//循环设置ul下的第i+1个li的旋转角度,要在css中设置了li的旋转中心                ul.innerHTML+=`<li></li>`;//这里要用+=,如果直接用=,只会创建一个li,因为会覆盖前面的li,为了不出现覆盖就用+=。            }            let sty=document.getElementById("style")//这里获取到style标签。            sty.innerHTML+=css //把ul下的li标签的css样式写入到style里。        }        li();//这里结束就把刻度画好了。        function time(){            let s=document.getElementById("second");//获取到时分秒的三个指针,后面用来动态让它们旋转起来。            let m=document.getElementById("min");            let h=document.getElementById("hour");            //获取时间。            let date=new Date();            let snum=date.getSeconds();//获取现在是多少秒。            let mnum=date.getMinutes()+snum/60;//获取现在是多少分,不能忘记加上 秒数/60。            let hnum=date.getHours()+mnum/60; //获取现在是多少时,不能忘记加上 分钟数/60。                        s.style.transform=`rotate(${snum*6}deg)`;//设置的trasnform就可以让它们旋转起来,秒针时一秒旋转6度。            m.style.transform=`rotate(${mnum*6}deg)`//分针也是一分钟旋转6度。            h.style.transform=`rotate(${hnum*30}deg)`//这里时小时,一小时旋转30度,所以*30.        }        setInterval(time,100)//用计时器每100ms运行这个time函数。    </script></body></html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持51zixue.net。


下载地址:
Vue导入Echarts实现折线散点图
react+antd.3x实现ip输入框
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。