<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>练习 - 网页时钟</title>
<style>
* {
box-sizing: border-box;
}
.clock {
width: 600px;
height: 600px;
background: url(./images/clock.jpg) no-repeat;
margin: 50px auto 0;
position: relative;
}
.hh,
.mm,
.ss {
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
background: url(./images/hour.png) no-repeat center;
}
.mm {
background-image: url(./images/minute.png);
transform: rotate(270deg);
}
.ss {
background-image: url(./images/second.png);
transform: rotate(30deg);
}
</style>
</head>
<body>
<div class="clock">
<div class="hh"></div>
<div class="mm"></div>
<div class="ss"></div>
</div>
<script>
/*
知识点:
1. 创建日期对象 获取当前时间
2. 多次定时器,重复获取时间,让指针动起来
*/
// 角度换算: 公式复制即可
// 小时角度公式:小时 * 30 + 分钟 / 60 * 30
// 分钟角度公式:分钟* 6 + 秒 / 60 * 6
// 秒角度公式: 当前秒数 * 6
const hh = document.querySelector('.hh')
const mm = document.querySelector('.mm')
const ss = document.querySelector('.ss')
setInterval(function () {
const currentTime = Date.now() / 1000
const s = Math.floor(currentTime % 60)
const h = Math.floor(((currentTime / 3600) % 24) % 12)
const m = Math.floor((currentTime / 60) % 60)
ss.style.transform = `rotate(${s * 6}deg)`
mm.style.transform = `rotate(${m * 6 + (s / 60) * 6}deg)`
hh.style.transform = `rotate(${h * 30 + (m / 60) * 30}deg)`
}, 1000)
</script>
</body>
</html>
为什么设置时针的角度不对?