版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
先说一下实现思路:很简单,就是获取时间对象,然后分别获取时分秒,然后根据时分秒和表盘的角度问题进行设置就好了。至于时钟上的数字怎么一下子调过去也很简单,写在for循环中,进行一下变换就好了,
//body部分
<div id="box">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
<div class="item">7</div>
<div class="item">8</div>
<div class="item">9</div>
<div class="item">10</div>
<div class="item">11</div>
<div class="item">12</div>
<div id="hour"></div>
<div id="minute"></div>
<div id="second"></div>
</div>
//script部分
for(var i =0;i<num.length;i++){
num[i].style.transform = "rotate("+((i+1) * 30)+"deg) translateY(-280px) rotate("+ (i+1)*-30 +"deg)";
};
var hour = document.getElementById("hour");
var minute = document.getElementById("minute");
var second = document.getElementById("second");
setInterval(function(){
var date = new Date();
var h = date.getHours();
var m = date.getMinutes();
var s = date.getSeconds();
second.style.transform = "rotate("+s*6+"deg)";
var sec = 6*s/360*6;
minute.style.transform = "rotate("+(m*6+sec)+"deg)";
var min = 6*m/360*30;
var ho = hour.style.transform = "rotate("+(h*30+min)+"deg)";
},50)