用CSS實現時鐘轉動是一項非常有趣的任務。在這個項目中,主要通過CSS的定位和旋轉屬性來達到時鐘轉動的效果。
.clock { position: relative; width: 200px; height: 200px; border-radius: 50%; background-color: #f2f2f2; margin: 50px auto; } .clock .hour, .clock .minute, .clock .second { position: absolute; width: 4px; height: 60px; background-color: #000; top: 70px; left: 98px; transform-origin: bottom center; transform: rotate(90deg); } .clock .hour { height: 40px; width: 6px; border-radius: 6px; } .clock .minute { height: 50px; width: 4px; border-radius: 4px; } .clock .second { height: 60px; width: 2px; }
上述代碼是時鐘的基本結構和樣式。可以看出,時鐘是一個寬高相等、圓角為50%的圓形容器,時針、分針、秒針是絕對定位到容器內部的直線元素,通過旋轉來完成時鐘轉動的效果。
接下來,需要使用JavaScript來獲取當前的時間,并計算出時針、分針、秒針應該旋轉的角度。
setInterval(() =>{ const date = new Date(); const seconds = date.getSeconds() * 6; const minutes = date.getMinutes() * 6 + (date.getSeconds() * 6) / 60; const hours = (date.getHours() % 12) * 30 + (date.getMinutes() * 30) / 60; const secondHand = document.querySelector(".second"); const minuteHand = document.querySelector(".minute"); const hourHand = document.querySelector(".hour"); secondHand.style.transform = `rotate(${seconds}deg)`; minuteHand.style.transform = `rotate(${minutes}deg)`; hourHand.style.transform = `rotate(${hours}deg)`; }, 1000);
上述代碼使用setInterval每秒鐘獲取當前時間,然后根據時間計算出每個指針應該旋轉的角度,最后通過設置元素的transform屬性來實現時鐘的轉動。需要注意的是,時針旋轉的角度不僅與當前時間有關,還需要考慮到分鐘的影響。
通過以上的代碼,我們就可以實現一個極其簡單的時鐘轉動效果。
下一篇生成樹 json