Day2 CSS + JS Clock
JavaScript30 Day2 筆記
Functions
- 時針、分針、秒針依時間改變旋轉
- 系統每秒、分、時自動更新指針角度
 
 
Steps
- 宣告 setInterval function: setDate
- get seconds/ minutes/ hours of current and turns them into degrees
- 秒:secs/60算出比例乘上360度
 - 分:概念同上
 - 時:huors/12算出比例乘上360度
 
 - document.style.transform = rotate(…) 改變指針角度
 
 - get seconds/ minutes/ hours of current and turns them into degrees
 - setInterval(setDate, 1000)
- 每1000毫秒(1秒)執行一次 setDate
 
 
Fixed
- 
指針與實際指針相差90度
- 原因:一開始水平指針被 CSS rotate(90)改變成垂直,JS 修改角度是從0度開始
 - 作法:JS 每秒改變的角度還要加上90度
 
 - 
秒針歸零時會閃一下
- 原因:
transition: all 0.05s,60秒450度到0秒90度是向後旋轉, transition 0.05s duration 會看到秒針閃一下 - 作法:
- 讓秒針不歸零
 - 60秒到0秒之間取消 transition
 
 
 - 原因:
 
Improvements
- 時針沒按比例移動,直接跳1/12格
 
CSS
transform-orign: 100% / x yrotate(deg)- +deg - 順時針
 - -deg - 逆時針
 
Native JS
new Date()- 獲得當前時間new Date.getSeconds()- 取得當前時間秒數new Date.getMinets()- 取得當前時間分鐘new Date.getHours()- 取得當前時間小時setInterval(func, milliseconds)- 每多少毫秒重複執行 func
References
- WindowOrWorkerGlobalScope.setInterval() - Web APIs @MDN Web Docs
 - CSS transform 能旋轉、傾斜、縮放變形 box @網頁藝術思考
 - CSS沒有極限 - CSS transform-origin @前端,沒有極限