之前文章先容过JavaScript数字时钟的设计与实现,紧张用于借助数组实现对数字时钟数字进行存储与标识。
在获取客户端系统韶光之后,选择对合时钟数字进行显示即可。
本文紧张先容基于CSS动画的时钟设计与实现。

实现思路与事理

本文设计利用CSS旋转元素属性,对时钟对应指针进行角度旋转。
紧张设计内容包括表盘及指针的设计。
个中表盘素材如下图所示:

表盘素材图片

htmljs动态时钟精巧JSCSS动画时钟设计实现与实例剖析 Angular
(图片来自网络侵删)

通过DIV层的嵌套,制作对应的时针、分针、秒针。
前端页面布局构造描述如下图所示:

前端布局HTML文件源码

在前端布局中我们利用clock层作为容器用于容纳全部时钟内容。
内部分别嵌套hour层用于表示时针、min层用于表示分针,sec层用于表示秒针。
通过进一步设置以上class对应的style样式属性值,实现页面的布局。
页面静态效果展示如下:

带时针前端页面静态效果

在初始时候所有指针全部重叠,在完成前端设计之后即可利用javascript脚本措辞获取用户客户端韶光,并从从韶光等分别读取对应的小时、分钟、秒数,并将其转化为所需旋转的角度。
利用rotateZ()方法实现绕Z轴进行迁徙改变。

在定义好迁徙改变角度之后,为实现时钟动态效果须要进一步利用setInterval定时器方法,设置在指定周期韶光内重复获取客户端韶光,转化后实行旋转。
终极呈现时钟效果展示如下:

时钟动态展示效果

核心代码剖析与解释

以上给出了设计开拓动态时钟的基本思路及事理,紧张包括素材(表盘)的准备,页面布局,客户端韶光获取,旋转方法利用,定时器的利用等。
个中页面布局是实现效果的根本,本例定理了clock类选择器用于实现表盘及干系效果的设计,该类选择器属性设置描述如下:

clock类选择器

clock类选择器定义如上图所示,个中box-shadow紧张完成阴影效果设置,border-radius属性紧张用于实现将div形状改为圆形。
整体布局利用flex进行布局,并设置对其办法为居中。
表盘中央白色圆点利用before伪元素进行设置,其样式定义如下:

表盘中央定义

以clock层为容器,进一步须要定义时针、分针与秒针对应的div干系属性。
个中小时、分钟指针效果定义样式描述如下图:

小时分钟定义

在小时分钟指针定义时利用before伪元素进行定义,通过position进行绝对定位,小时、分钟、秒针利用宽度高度不同,并对指针边缘利用border-radius进行圆角弧度设置。
在干系层定义过程中利用z-index进行层叠顺序的设置。

在前端代码编写完成之后,就须要利用JavaScript供应的new Date获取客户端当前韶光,并从个中分离出小时分钟秒对应的数值及转化角度。
实当代码如下:

韶光转为旋转角度

如上图所示,个中deg为常量,表示表盘最小刻度对应的角度,值为6;在转换完成之后即可获取时、分、秒对应的div元素,设置其style样式,个中获取元素代码如下:

获取韶光指针对应元素

末了利用style属性设置方法完成旋转角度的设置,代码描述如下:

利用style设置指针旋转

在完成以上所有操作之后,可以将以上获取韶光、处理韶光及旋转设置的代码封装到一个定时器中,设置实行周期为300毫秒,终极完成案例设计。
完全JavaScript代码部分描述如下:

Js部分完全代码

本例JavaScript部分完全代码描述如上图,如需完全案例代码请关注并私信作者。

本头条号长期关注编程资讯分享;编程课程、素材、代码分享及编程培训。
如果您对以上方面有兴趣或代码缺点、建议与见地,可在评论区回答。
更多程序设计干系教程及实例分享,期待大家关注与阅读!