js+SVG實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘效果
本文實(shí)例為大家分享了js+SVG實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘效果展示的具體代碼,供大家參考,具體內(nèi)容如下
<!DOCTYPE HTML> <html> <meta charset="utf-8"> <head> <title>Analog Clock</title> <script> function updateTime() { var now = new Date(); // 當(dāng)前時(shí)間 var min = now.getMinutes(); // 分鐘 var hour = (now.getHours() % 12) + min/60; // 轉(zhuǎn)行成可以在時(shí)鐘上表示的時(shí)間 var seconds = now.getSeconds(); //秒鐘 var minangle = min*6; // 6度表示一分鐘 var hourangle = hour*30; // 30 表示一小時(shí) var secrangel = seconds * 6; // 6度表示一秒鐘 // 獲取表示時(shí)鐘時(shí)針的SVG元素 var minhand = document.getElementById("minutehand"); var hourhand = document.getElementById("hourhand"); var secondhand = document.getElementById("secondhand"); // 設(shè)置這些元素的SVG屬性,將它們移動(dòng)到鐘面上 minhand.setAttribute("transform", "rotate(" + minangle + ",50,50)"); hourhand.setAttribute("transform", "rotate(" + hourangle + ",50,50)"); secondhand.setAttribute("transform", "rotate(" + secrangel + ",50,50)"); // 每秒鐘更新下時(shí)鐘顯示時(shí)間 setTimeout(updateTime, 1000); } </script> <style> #clock { stroke: black; stroke-linecap: round; fill: #eef; } #face { stroke-width: 2px;} #ticks { stroke-width: 2px; } #hourhand {stroke-width: 3px;} #minutehand {stroke-width: 2px;} #secondhand{stroke-width: 1px;} #numbers { font-family: sans-serif; font-size: 7pt; font-weight: bold; text-anchor: middle; stroke: none; fill: black; } </style> </head> <body onload="updateTime()"> <!-- viewBox是坐標(biāo)系,width和height是指屏幕大小 --> <svg id="clock" viewBox="0 0 100 100" width="500" height="500"> <defs> <!-- 定義下拉陰影的濾鏡 --> <filter id="shadow" x="-50%" y="-50%" width="200%" height="200%"> <feGaussianBlur in="SourceAlpha" stdDeviation="1" result="blur" /> <feOffset in="blur" dx="1" dy="1" result="shadow" /> <feMerge> <feMergeNode in="SourceGraphic"/><feMergeNode in="shadow"/> </feMerge> </filter> </defs> <circle id="face" cx="50" cy="50" r="45"/> <!-- 鐘緬 --> <g id="ticks"> <!-- 12小時(shí)的刻度 --> <line x1='50' y1='5.000' x2='50.00' y2='10.00'/> <line x1='72.50' y1='11.03' x2='70.00' y2='15.36'/> <line x1='88.97' y1='27.50' x2='84.64' y2='30.00'/> <line x1='95.00' y1='50.00' x2='90.00' y2='50.00'/> <line x1='88.97' y1='72.50' x2='84.64' y2='70.00'/> <line x1='72.50' y1='88.97' x2='70.00' y2='84.64'/> <line x1='50.00' y1='95.00' x2='50.00' y2='90.00'/> <line x1='27.50' y1='88.97' x2='30.00' y2='84.64'/> <line x1='11.03' y1='72.50' x2='15.36' y2='70.00'/> <line x1='5.000' y1='50.00' x2='10.00' y2='50.00'/> <line x1='11.03' y1='27.50' x2='15.36' y2='30.00'/> <line x1='27.50' y1='11.03' x2='30.00' y2='15.36'/> </g> <g id="numbers"> <!-- 標(biāo)記重要的幾個(gè)刻度值--> <text x="50" y="18">12</text><text x="85" y="53">3</text> <text x="50" y="88">6</text><text x="15" y="53">9</text> </g> <!-- 初始繪制成豎直的指針,之后通過(guò)js來(lái)做旋轉(zhuǎn) --> <g id="hands" filter="url(#shadow)"> <!-- 給指針添加陰影 --> <line id="hourhand" x1="50" y1="50" x2="50" y2="25"/> <line id="minutehand" x1="50" y1="50" x2="50" y2="18"/> <line id="secondhand" x1="50" y1="50" x2="50" y2="11"/> </g> </svg> </body> </html>
更多JavaScript時(shí)鐘特效點(diǎn)擊查看:JavaScript時(shí)鐘特效專(zhuān)題
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- javascript實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘的啟動(dòng)和停止
- Javascript實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘效果
- JS+Canvas繪制動(dòng)態(tài)時(shí)鐘效果
- 基于javascript實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘效果
- javascript入門(mén)·動(dòng)態(tài)的時(shí)鐘,顯示完整的一些方法,新年倒計(jì)時(shí)
- js實(shí)現(xiàn)一個(gè)簡(jiǎn)單的數(shù)字時(shí)鐘效果
- html5 canvas js(數(shù)字時(shí)鐘)實(shí)例代碼
- 五步輕松實(shí)現(xiàn)JavaScript HTML時(shí)鐘效果
- JavaScript實(shí)現(xiàn)簡(jiǎn)單的時(shí)鐘實(shí)例代碼
- js實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘
相關(guān)文章
JavaScript中逗號(hào)運(yùn)算符介紹及使用示例
這篇文章主要介紹了JavaScript中逗號(hào)運(yùn)算符介紹及使用示例,本文講解了逗號(hào)運(yùn)算符的定義、使用例子及實(shí)際使用的一些技巧,需要的朋友可以參考下2015-03-03JavaScript+node實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)菜單
這篇文章主要為大家詳細(xì)介紹了JavaScript+node實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)菜單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07輸入密碼檢測(cè)大寫(xiě)是否鎖定js實(shí)現(xiàn)代碼
網(wǎng)站登錄為了更好的用戶體驗(yàn)都會(huì)在輸入密碼的時(shí)候檢測(cè)是否開(kāi)啟大寫(xiě),這樣有助于提醒用戶,需要學(xué)習(xí)的朋友可以參考下2012-12-12JavaScript的parseInt 進(jìn)制問(wèn)題
今天在整理以前寫(xiě)過(guò)的一段根據(jù)周期值自動(dòng)計(jì)算下次執(zhí)行日期的js代碼,發(fā)現(xiàn)一bug,我使用parseInt對(duì)源數(shù)據(jù)串進(jìn)行轉(zhuǎn)換,當(dāng)輸入類(lèi)似:2009-05-05時(shí),parseInt將把串的05做8進(jìn)制轉(zhuǎn)換,這樣結(jié)果自然就不對(duì)了。2009-05-05JavaScript之instanceof方法手寫(xiě)示例詳解
這篇文章主要為大家介紹了JavaScript之instanceof方法手寫(xiě)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10uniapp微信小程序訂閱消息發(fā)送服務(wù)通知超詳細(xì)教程
在使用或開(kāi)發(fā)小程序過(guò)程中,我們會(huì)發(fā)現(xiàn)消息通知是非常重要的一個(gè)環(huán)節(jié),下面這篇文章主要給大家介紹了關(guān)于uniapp微信小程序訂閱消息發(fā)送服務(wù)通知的相關(guān)資料,需要的朋友可以參考下2023-06-06