完全修复指针位置的动态时钟
使用纯CSS实现的多层波浪动画背景,营造动态视觉体验
完全修复指针位置的模拟时钟,精确显示当前时间
在各种设备上完美呈现,移动端友好
完全修复指针位置的时钟实现
// 获取时钟指针元素
const hourHand = document.querySelector('.hour-hand');
const minHand = document.querySelector('.min-hand');
const secHand = document.querySelector('.sec-hand');
const digitalClock = document.getElementById('digital-clock');
// 更新时间函数
function updateTime() {
const now = new Date();
const hours = now.getHours();
const minutes = now.getMinutes();
const seconds = now.getSeconds();
// 计算指针角度
const hourDeg = (hours % 12) * 30 + minutes * 0.5; // 每小时30度 + 每分钟0.5度
const minDeg = minutes * 6 + seconds * 0.1; // 每分钟6度 + 每秒0.1度
const secDeg = seconds * 6; // 每秒6度
// 应用旋转角度
hourHand.style.transform = `translateX(-50%) rotate(${hourDeg}deg)`;
minHand.style.transform = `translateX(-50%) rotate(${minDeg}deg)`;
secHand.style.transform = `translateX(-50%) rotate(${secDeg}deg)`;
// 更新数字时钟
const hourStr = hours.toString().padStart(2, '0');
const minStr = minutes.toString().padStart(2, '0');
const secStr = seconds.toString().padStart(2, '0');
digitalClock.textContent = `${hourStr}:${minStr}:${secStr}`;
}
// 每秒更新时间
setInterval(updateTime, 1000);
// 初始化时间
updateTime();
使用transform-origin: bottom center确保指针从中心底部旋转
计算时针、分针和秒针的精确旋转角度
同时应用平移和旋转变换确保指针位置准确