本文实例为大家分享了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>
以上就是本文的全部内容,希望对大家的学习有所帮助
您可能感兴趣的文章:
- 原生JS实现实时钟表
- js实现特别简单的钟表效果
- javascript绘制简单钟表效果
- JS+CSS3实现的简易钟表效果示例
- 原生JS实现的简单小钟表功能示例
- 利用css+原生js制作简单的钟表
- 详解JavaScript的Date对象(制作简易钟表)
- js实现一个简单的数字时钟效果
- html5 canvas js(数字时钟)实例代码
- JavaScript实现抖音罗盘时钟