波浪背景动态时钟

完全修复指针位置的动态时钟

00:00:00

波浪背景效果

使用纯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确保指针从中心底部旋转

精确角度计算

计算时针、分针和秒针的精确旋转角度

组合变换

同时应用平移和旋转变换确保指针位置准确