整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          HTML5/CSS3圓盤(pán)時(shí)鐘動(dòng)畫(huà) 帶時(shí)鐘滴答聲音

          款基于HTML5和CSS3的圓盤(pán)時(shí)鐘動(dòng)畫(huà),它的特點(diǎn)是圓盤(pán)時(shí)鐘側(cè)邊帶有實(shí)時(shí)更新的數(shù)字時(shí)鐘,而且時(shí)鐘在走動(dòng)時(shí)還會(huì)發(fā)出滴答滴答的聲音。

          效果圖

          代碼:

          JavaScript代碼:

          頁(yè)面布局:

          css樣式:

          態(tài)時(shí)鐘設(shè)計(jì)實(shí)例

          之前文章介紹過(guò)JavaScript數(shù)字時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn),主要用于借助數(shù)組實(shí)現(xiàn)對(duì)數(shù)字時(shí)鐘數(shù)字進(jìn)行存儲(chǔ)與標(biāo)識(shí)。在獲取客戶端系統(tǒng)時(shí)間之后,選擇對(duì)應(yīng)時(shí)鐘數(shù)字進(jìn)行顯示即可。本文主要介紹基于CSS動(dòng)畫(huà)的時(shí)鐘設(shè)計(jì)與實(shí)現(xiàn)。


          實(shí)現(xiàn)思路與原理

          本文設(shè)計(jì)使用CSS旋轉(zhuǎn)元素屬性,對(duì)時(shí)鐘對(duì)應(yīng)指針進(jìn)行角度旋轉(zhuǎn)。主要設(shè)計(jì)內(nèi)容包括表盤(pán)及指針的設(shè)計(jì)。其中表盤(pán)素材如下圖所示:

          表盤(pán)素材圖片

          通過(guò)DIV層的嵌套,制作對(duì)應(yīng)的時(shí)針、分針、秒針。前端頁(yè)面布局結(jié)構(gòu)描述如下圖所示:

          前端布局HTML文件源碼

          在前端布局中我們使用clock層作為容器用于容納全部時(shí)鐘內(nèi)容。內(nèi)部分別嵌套hour層用于表示時(shí)針、min層用于表示分針,sec層用于表示秒針。通過(guò)進(jìn)一步設(shè)置以上class對(duì)應(yīng)的style樣式屬性值,實(shí)現(xiàn)頁(yè)面的布局。頁(yè)面靜態(tài)效果展示如下:

          帶時(shí)針前端頁(yè)面靜態(tài)效果

          在初始時(shí)刻所有指針全部重疊,在完成前端設(shè)計(jì)之后即可使用javascript腳本語(yǔ)言獲取用戶客戶端時(shí)間,并從從時(shí)間中分別讀取對(duì)應(yīng)的小時(shí)、分鐘、秒數(shù),并將其轉(zhuǎn)化為所需旋轉(zhuǎn)的角度。使用rotateZ()方法實(shí)現(xiàn)繞Z軸進(jìn)行轉(zhuǎn)動(dòng)。

          在定義好轉(zhuǎn)動(dòng)角度之后,為實(shí)現(xiàn)時(shí)鐘動(dòng)態(tài)效果需要進(jìn)一步使用setInterval定時(shí)器方法,設(shè)置在指定周期時(shí)間內(nèi)重復(fù)獲取客戶端時(shí)間,轉(zhuǎn)化后執(zhí)行旋轉(zhuǎn)。最終呈現(xiàn)時(shí)鐘效果展示如下:

          時(shí)鐘動(dòng)態(tài)展示效果


          核心代碼分析與說(shuō)明

          以上給出了設(shè)計(jì)開(kāi)發(fā)動(dòng)態(tài)時(shí)鐘的基本思路及原理,主要包括素材(表盤(pán))的準(zhǔn)備,頁(yè)面布局,客戶端時(shí)間獲取,旋轉(zhuǎn)方法使用,定時(shí)器的使用等。其中頁(yè)面布局是實(shí)現(xiàn)效果的基礎(chǔ),本例定理了clock類選擇器用于實(shí)現(xiàn)表盤(pán)及相關(guān)效果的設(shè)計(jì),該類選擇器屬性設(shè)置描述如下:

          clock類選擇器

          clock類選擇器定義如上圖所示,其中box-shadow主要完成陰影效果設(shè)置,border-radius屬性主要用于實(shí)現(xiàn)將div形狀改為圓形。整體布局使用flex進(jìn)行布局,并設(shè)置對(duì)其方式為居中。表盤(pán)中心白色圓點(diǎn)使用before偽元素進(jìn)行設(shè)置,其樣式定義如下:

          表盤(pán)中心定義

          以clock層為容器,進(jìn)一步需要定義時(shí)針、分針與秒針對(duì)應(yīng)的div相關(guān)屬性。其中小時(shí)、分鐘指針效果定義樣式描述如下圖:

          小時(shí)分鐘定義

          在小時(shí)分鐘指針定義時(shí)使用before偽元素進(jìn)行定義,通過(guò)position進(jìn)行絕對(duì)定位,小時(shí)、分鐘、秒針使用寬度高度不同,并對(duì)指針邊緣使用border-radius進(jìn)行圓角弧度設(shè)置。在相關(guān)層定義過(guò)程中使用z-index進(jìn)行層疊順序的設(shè)置。

          在前端代碼編寫(xiě)完成之后,就需要使用JavaScript提供的new Date獲取客戶端當(dāng)前時(shí)間,并從其中分離出小時(shí)分鐘秒對(duì)應(yīng)的數(shù)值及轉(zhuǎn)化角度。實(shí)現(xiàn)代碼如下:

          時(shí)間轉(zhuǎn)為旋轉(zhuǎn)角度

          如上圖所示,其中deg為常量,表示表盤(pán)最小刻度對(duì)應(yīng)的角度,值為6;在轉(zhuǎn)換完成之后即可獲取時(shí)、分、秒對(duì)應(yīng)的div元素,設(shè)置其style樣式,其中獲取元素代碼如下:

          獲取時(shí)間指針對(duì)應(yīng)元素

          最后使用style屬性設(shè)置方法完成旋轉(zhuǎn)角度的設(shè)置,代碼描述如下:

          使用style設(shè)置指針旋轉(zhuǎn)

          在完成以上所有操作之后,可以將以上獲取時(shí)間、處理時(shí)間及旋轉(zhuǎn)設(shè)置的代碼封裝到一個(gè)定時(shí)器中,設(shè)置執(zhí)行周期為300毫秒,最終完成案例設(shè)計(jì)。完整JavaScript代碼部分描述如下:

          Js部分完整代碼

          本例JavaScript部分完整代碼描述如上圖,如需完整案例代碼請(qǐng)關(guān)注并私信作者。


          本頭條號(hào)長(zhǎng)期關(guān)注編程資訊分享;編程課程、素材、代碼分享及編程培訓(xùn)。如果您對(duì)以上方面有興趣或代碼錯(cuò)誤、建議與意見(jiàn),可在評(píng)論區(qū)回復(fù)。更多程序設(shè)計(jì)相關(guān)教程及實(shí)例分享,期待大家關(guān)注與閱讀!

          1、美國(guó)人。

          ·2、美國(guó)人。

          ·3、美國(guó)人。

          ·4、美國(guó)人。


          主站蜘蛛池模板: 久久精品免费一区二区喷潮| 中文字幕乱码人妻一区二区三区| 亚洲AV无码一区东京热久久| 亚洲国产成人精品无码一区二区 | 国产一区二区三区免费| 97se色综合一区二区二区| 国产一区在线视频| 动漫精品一区二区三区3d| 国产精品一级香蕉一区| 中文字幕精品一区二区精品| 日韩av片无码一区二区三区不卡| 中字幕一区二区三区乱码| 91精品一区二区| 少妇精品无码一区二区三区| 国产一区在线视频| 精品成人av一区二区三区| 一区二区三区午夜| 一区二区三区无码高清视频| 国产MD视频一区二区三区| 日韩在线视频一区| 国产成人免费一区二区三区| 精品国产一区二区三区久久狼| 午夜影院一区二区| 久久精品无码一区二区三区免费| 国产成人精品日本亚洲专一区| 人妻体内射精一区二区三四| 亚洲日本va午夜中文字幕一区| 麻豆精品久久久一区二区| 无码一区二区三区免费| 性色A码一区二区三区天美传媒| 日本一区二区三区精品中文字幕| 国产自产V一区二区三区C| 国产一区二区精品| 久久人做人爽一区二区三区| 一区二区三区无码被窝影院| 无码人妻精一区二区三区| 精彩视频一区二区| 中文字幕一区二区三区有限公司 | 国产午夜精品一区理论片| 无码人妻精品一区二区三区东京热 | 爱爱帝国亚洲一区二区三区|