圓盤時鐘是一種非常有趣的時鐘設計,下面的 CSS 代碼實現了一個簡單的圓盤時鐘。
.clock { width: 200px; height: 200px; border: 10px solid #333; border-radius: 100%; position: relative; } .hour-hand { width: 40%; height: 6px; background-color: #333; position: absolute; left: 30%; top: 47%; transform-origin: left center; } .minute-hand { width: 60%; height: 4px; background-color: #999; position: absolute; left: 20%; top: 49%; transform-origin: left center; } .second-hand { width: 70%; height: 2px; background-color: #aaa; position: absolute; left: 15%; top: 50%; transform-origin: left center; } .center { width: 12px; height: 12px; border-radius: 100%; background-color: #333; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
這段 CSS 代碼創建了一個圓形的容器,作為時鐘的外框,并創建了三個指針(時針、分針、秒針)和一個指針中心點。其中,指針的長度、顏色等都可以根據需求進行調整。
要使這個圓盤時鐘動起來,需要通過 JavaScript 定時器來實現每秒鐘指針的旋轉,具體做法可以參考以下代碼:
function rotateHands() { var d = new Date(); var hours = d.getHours(); var minutes = d.getMinutes(); var seconds = d.getSeconds(); var hourAngle = (hours % 12) / 12 * 360 + minutes / 60 * 30; var minuteAngle = minutes / 60 * 360; var secondAngle = seconds / 60 * 360; var hourHand = document.querySelector('.hour-hand'); var minuteHand = document.querySelector('.minute-hand'); var secondHand = document.querySelector('.second-hand'); hourHand.style.transform = 'rotate(' + hourAngle + 'deg)'; minuteHand.style.transform = 'rotate(' + minuteAngle + 'deg)'; secondHand.style.transform = 'rotate(' + secondAngle + 'deg)'; } setInterval(rotateHands, 1000);
這個代碼片段中的函數 rotateHands 定義了獲取當前時間,計算時針、分針、秒針旋轉的角度,并修改對應元素的 transform 屬性來實現旋轉。最后,使用 setInterval 定時器每秒調用 rotateHands 函數,使時鐘動起來。