纯JS实现的时钟

效果图:

主要思想:

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>

JavaScript实现的钟表时钟相关推荐

  1. 【Canvas】js用canvas绘制一个钟表时钟动画效果

    学习JavaScript的看过来,有没有兴趣用Canvas画图呢,可以画很多有趣的事物,自由发挥想象,收获多多哦,旋转角度绘图这个重点掌握到了吗,这里有一个例子,如何用canvas画钟表时钟动图效果, ...

  2. html5时间画布走动,javascript+HTML5 canvas绘制时钟功能示例

    本文实例讲述了javascript+HTML5 canvas绘制时钟功能.分享给大家供大家参考,具体如下: 效果如下: 代码: www.jb51.net canvas绘制时钟 div{text-ali ...

  3. javascript做极简时钟特效,再简单没思路你也做不出来

    点击查看时钟特效 极简主义,程序员javascript打造极简时钟特效 对于javascript特效的学习,重要的是逻辑思路,所以这个时钟特效不是很华丽,但是功能都展现出来了,而学习javascrip ...

  4. 钟表时钟时间管理PPT模板

    模板介绍 本套钟表时钟时间管理PPT模板,模板编号:P34476,大小10MB,共27页,比例为16:9,由封面.目录.转场页.内容.结尾5个部分构成. 内含黄色的多种配色,精美风格设计,动态播放效果 ...

  5. html5canvas绘制时钟,JavaScript html5 canvas绘制时钟效果

    本文实例讲述了JavaScript+html5 canvas绘制时钟效果.分享给大家供大家参考,具体如下: HTML部分: canvas绘图 JavaScript部分: function init() ...

  6. javascript 计算器、动态时钟、表格复选框全选(扩展)、轮播图、36选7、随机数...

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  7. Javascript实现的倒计时时钟

    本文用Javascript实现了一个倒计时时钟: countdown.js var test_val; function el(id) {   if (document.getElementById) ...

  8. JavaScript+屏幕自适应:时钟(色卡分享+canvas+js)

    色卡作为一种预设工具,是自然界存在的颜色在某种材质上的体现,主要用于色彩选择.比对.沟通,是色彩实现在一定范围内统一的标准.目前市面上的色卡种类有很多,但是常用的又有那些呢 ? 常用色卡的种类: 色卡 ...

  9. html中钟表功能的js插件,javascript绘制简单钟表效果

    本文给大家分享一个canvas的时钟绘制,供大家参考,具体内容如下 复制可直接使用 h1 { text-align: center; } div { width: 400px; height: 400 ...

最新文章

  1. HTML Add-on HTML 查看器/编辑器查看器
  2. Linux之磁盘管理,分区
  3. 基于pygame的射击小游戏制作(二)射击子弹
  4. Javascript实现的左右滑动菜单
  5. php socket 多次发送,php模拟socket 多次发送数据的实现方法
  6. matlab已知ft求f2t,基于Matlab的信号与系统实验指导2
  7. MySQL中GTID的几个限制和解决方案(r13笔记第21天)
  8. VB.net编码规范(转帖)
  9. win10如何用管理员权限去运行服务器,让Visualstudio在win10下使用管理员方式运行...
  10. 多元统计分析基于r课后答案_应用多元统计分析课后答案.doc
  11. Win10没有Realtek高清晰音频管理器怎么办?
  12. 使用iconv进行GBK到BIG5编码转/简繁转换遇到的问题
  13. 计算机语言中的计数器是什么,程序计数器的作用_程序计数器pc中存放的是什么...
  14. 关于网站推广 网站营销 建议
  15. KEIL MDK中的RO、RW和ZI
  16. 【附源码】Java计算机毕业设计计算机配件价格查询微信小程序(程序+LW+部署)
  17. python——常见运算符号
  18. 微信小程中文特殊字符编码与解码
  19. Java poi操作Excel单元格样式
  20. hihocoder-1565-大富翁

热门文章

  1. 正好配资简述大票震荡小票稳
  2. 欧盟自由销售证_小公司和自由职业者如何应对VATMOSS欧盟增值税变更
  3. ios添加真机调试方法,和xcode查询udid方法
  4. css中的继承,子标签会继承父标签的某些样式(话说自己以前还真的没有注意到过继承)
  5. 迁移CentOS 8到版本 almalinux8
  6. 应该是尿酸高痛风导致脚痛
  7. 未来网络安全十大趋势
  8. 用DQN实现Atari game(Matlab代码实现)
  9. 节后上班第一天图鉴来袭,请对号入座!
  10. android图形编程,Android图形编程基础