<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JS时钟</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
#wrap {
width: 300px;
height: 300px;
border-radius:50%;
background:gray;
margin:100px auto;
position: relative;
}
#clock {
width: 250px;
height: 250px;
border-radius:50%;
background: white ;
position: absolute;
top: 0;
bottom:0;
left: 0;
right: 0;
margin:auto;
}
#number {
width: 100%;
height: 100%;
position: relative;
}
#number div{
width: 240px;
height: 30px;
/*background:red;*/
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin:auto;
font-size:25px;
line-height:30px;
}
#hour {
width: 5px;
height: 65px;
background:purple;
}
#minute {
width: 3px;
height: 80px;
background:greenyellow;
}
#second {
width: 1px;
height: 95px;
background:red;
}
.num {
position: absolute;
bottom:50%;
left:50%;
/*修改变换点*/
transform-origin:50% bottom;
}
span {
display:inline-block;
}
</style>
</head>
<body>
<!--表框-->
<div id="wrap">
<!--表盘-->
<div id="clock">
<!--时间刻度-->
<div id="number">
<div>- <span>9</span></div>
<div>- <span>10</span></div>
<div>- <span>11</span></div>
<div>- <span>12</span></div>
<div>- <span>1</span></div>
<div>- <span>2</span></div>
<div>- <span>3</span></div>
<div>- <span>4</span></div>
<div>- <span>5</span></div>
<div>- <span>6</span></div>
<div>- <span>7</span></div>
<div>- <span>8</span></div>
</div>
<!--时针-->
<div id="hour" class="num"></div>
<!--分针-->
<div id="minute" class="num"></div>
<!--秒针-->
<div id="second" class="num"></div>
</div>
</div>
<script type="text/javascript">
//分别获取时针,分针,秒针
var hour = document.getElementById("hour");
var minute = document.getElementById("minute");
var second = document.getElementById("second");
// var numberDiv = document.getElementById("number");
// var divs = numberDiv.getElementsByTagName("div")
var divs = document.querySelectorAll("#number div");
var spans = document.getElementsByTagName("span");
//修正刻度的位置
for(var i = 0; i < divs.length; i++){
divs[i].style.transform = "rotate(" + i * 30 + "deg)";
spans[i].style.transform = "rotate(" + i * -30 + "deg)";
}
function times(){
var now = new Date();
var h = now.getHours();
var m = now.getMinutes();
var s = now.getSeconds();
//时针旋转的角度由小时和分钟共同决定.
var hDeg = m / 60 * 30;
hour.style.transform = "rotate(" + (h * 30 + hDeg) + "deg)";
//分针旋转的角度由分针和秒针共同决定
var mDeg = s / 60 * 6;
minute.style.transform = "rotate(" + (m * 6 + mDeg) + "deg)";
//秒针的旋转由秒针决定
var sDeg = s * 6;
second.style.transform = "rotate(" + (sDeg) + "deg)";
}
times();
setInterval(times, 1000);
</script>
</body>
</html>