废话不多说,代码如下:
在需要注释的地方我会加上注释
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
/* #hour {
width: 8px;
height: 200px;
background: red;
} */
.clock {
width: 500px;
height: 500px;
background: black;
margin: 80px auto;
position: relative;
}
#sec {
background: lightgreen;
width: 4px;
height: 200px;
position: absolute;
left: 50%;
margin-left: -2px;
top: 60px;
transform-origin: center 190px;
}
#minute {
background: hotpink;
width: 6px;
height: 150px;
position: absolute;
left: 50%;
margin-left: -3px;
top: 110px;
transform-origin: center 140px;
}
#hour {
background: greenyellow;
width: 8px;
height: 100px;
position: absolute;
left: 50%;
margin-left: -4px;
top: 160px;
transform-origin: center 90px;
}
.scale div {
width: 2px;
height: 60px;
background: white;
position: absolute;
left: 50%;
top: 50%;
margin-left: -1px;
margin-top: -30px;
}
.scale div span {
width: 100px;
height: 30px;
line-height: 30px;
text-align: center;
position: absolute;
left: 50%;
margin-left: -50px;
top: 60px;
/* background: yellow; */
color: yellow;
}
.scale div:nth-of-type(1) {
transform: rotateZ(0deg) translateY(-170px);
}
.scale div:nth-of-type(1) span {
transform: rotateZ(-0deg)
}
.scale div:nth-of-type(2) {
transform: rotateZ(90deg) translateY(-170px);
}
.scale div:nth-of-type(2) span {
transform: rotateZ(-90deg)
}
.scale div:nth-of-type(3) {
transform: rotateZ(180deg) translateY(-170px);
}
.scale div:nth-of-type(3) span {
transform: rotateZ(-180deg)
}
.scale div:nth-of-type(4) {
transform: rotateZ(270deg) translateY(-170px);
}
.scale div:nth-of-type(4) span {
transform: rotateZ(-270deg)
}
</style>
</head>
<body>
<div class="clock">
<div id="hour"></div>
<div id="minute"></div>
<div id="sec"></div>
<div class="scale">
<div><span>12</span></div>
<div><span>3</span></div>
<div><span>6</span></div>
<div><span>9</span></div>
</div>
</div>
<script>
//在JS中改变一个元素的样式:
// 1. 取得该元素
// var hour = document.getElementById('hour')
// 2. 设定该元素的style.xxx属性
// hour.style.background = 'yellow'
// hour.style.transform = 'rotate(30deg)'
function update() {
var now = new Date();
//取得毫秒
var ms = now.getMilliseconds()
//秒针
var sec = now.getSeconds();
var secPointer = document.getElementById('sec');
var secDeg = sec * 360 / 60 + ms * 6 / 1000
secPointer.style.transform = 'rotateZ(' + secDeg + 'deg)'
//分针
var minute = now.getMinutes();
var minutePointer = document.getElementById('minute')
var minuteDeg = minute * 360 / 60 + sec * 0.1;
minutePointer.style.transform = 'rotateZ(' + minuteDeg + 'deg)'
//小时
var hour = now.getHours();
var hourPointer = document.getElementById('hour')
var hourDeg = hour * 360 / 12 + minute * 30 / 60;
hourPointer.style.transform = 'rotateZ(' + hourDeg + 'deg)'
}
update() //刷新页面时,立马执行一遍,设定指针的角度
setInterval(update, 1000 / 60)
</script>
</body>
</html>
人人为我,我为人人! skr~~~~!