首先准备四张图片,分别代表时分秒和背景。在这里我就省略css 部分。主要的东西是设置时分秒为绝对定位,然后设置背景图片。注意background-postion的定位为center center居中显示就可以了。
<body>
<div class="clock">
<div class="h" id="hour"></div>
<div class="m" id="minute"></div>
<div class="s" id="second"></div>
</div>
</body>
二、JS部分,再没有开始JS部分之前我们需要了解的知识。第一步获取时分秒元素,二、通过Date对象获取时间,三、获取的时间需要在定时器中,四、由于我们知道时钟需要有旋转角度。我们怎么计算是难点。首先分析,获取秒针时间之后,一秒钟旋转多少度?是6度 分针也一样,然而时针一小时旋转30度,所以我们在计算转动角度之后,还要分析,每个周期没有走完,就是说还没有达到一个整数的一小时,时针是不动的?不是所以我们需要动态的数据。需要在每个后面加上,每过一微秒的动态数据变化。然手利用,transform属性中的rotate() 旋转方法实现角度的转动。
<script>
var hour = document.getElementById("hour");
var minute = document.getElementById("minute");
var second = document.getElementById("second");
// 开始定时器
var s = 0,m = 0, h = 0, ms = 0;
setInterval(function() {
// 内容就可以了
var date = new Date(); // 得到最新的时间
ms = date.getMilliseconds(); // 现在的毫秒数
s = date.getSeconds() + ms / 1000; // 得到秒 1.3 s
m = date.getMinutes() + s / 60; // 得到的是分数 45.6分钟
h = date.getHours() % 12 + m / 60 ;
//console.log(h);
//旋转角度
// 一圈 360 ° 一共有 60 秒 每秒 6 ° 现在是 s秒
second.style.WebkitTransform = "rotate("+ s*6 +"deg)";
// 变化 旋转 deg 度
minute.style.WebkitTransform = "rotate("+ m*6 +"deg)";
hour.style.WebkitTransform = "rotate("+ h*30 +"deg)";
second.style.MozTransform = "rotate("+ s*6 +"deg)";
// 变化 旋转 deg 度
minute.style.MozTransform = "rotate("+ m*6 +"deg)";
hour.style.MozTransform = "rotate("+ h*30 +"deg)";
},100);
</script>