CSS3和JavaScript是現今網頁設計最常用的兩種前端語言,可以實現各類動畫效果,其中時鐘效果是一個經典案例。
.clock { width: 200px; height: 200px; border: 10px solid #666; border-radius: 50%; position: relative; } .hour, .minute, .second { position: absolute; top: 50%; left: 50%; width: 4px; height: 50px; transform-origin: center bottom; background-color: #333; } .hour { transform: rotate(30deg); } .minute { transform: rotate(180deg); } .second { width: 2px; height: 70px; background-color: red; transform: rotate(135deg); animation: rotate 60s linear infinite; } @keyframes rotate { to { transform: rotate(465deg); } }
以上是一個使用CSS3編寫的時鐘樣式,利用border-radius屬性制作圓形表盤,通過position和transform屬性將時針、分針、秒針定位并旋轉至正確的位置;同時,結合animation屬性和@keyframes規則,實現了秒針旋轉的動畫效果。
setInterval(() =>{ const now = new Date(); const hour = now.getHours(); const minute = now.getMinutes(); const second = now.getSeconds(); const hourDeg = hour * 30 + minute * 0.5 - 90; const minuteDeg = minute * 6 + second * 0.1 - 90; const secondDeg = second * 6 - 90; const hourHand = document.querySelector('.hour'); const minuteHand = document.querySelector('.minute'); const secondHand = document.querySelector('.second'); hourHand.style.transform = `rotate(${hourDeg}deg)`; minuteHand.style.transform = `rotate(${minuteDeg}deg)`; secondHand.style.transform = `rotate(${secondDeg}deg)`; }, 1000);
而JavaScript部分則是獲取當前時間,并計算時針、分針、秒針的旋轉角度,再通過DOM操作改變相應元素的旋轉屬性,使其實現動態效果。以上是一個簡易的時鐘實現案例,當然實際的實現中還有更多細節需要考慮。
下一篇css3 畫 七等分圓