这个特效是我很早之前就想要做的了,可惜一直没有思路,原本以为这个特效是使用HTML5来实现的,但是我今天在早晨上班的路上,无意间就想到了实现的方法,于是到公司之后就按照我所设想的实现思路尝试了一下,没想到真的成功了,仅仅花费了两个小时不到。好的技术是要分享的,接下来我就讲解一下这个时钟特效的实现原理。
setInterval(function(){//定时器 每隔一秒执行一次
var date = new Date();//创建Date对象
var currentMin = date.getMinutes() * 6;//获取当前时间分钟值
var currentHours = date.getHours() * 30;//获取小时值
var currerntSec = date.getSeconds() * 6;//获取秒值
//将获取到的当前时间值赋给元素的rotate。
$(".secli").css({"transform":"rotate("+currerntSec+"deg)"});
$(".minuteli").css({"transform":"rotate("+currentMin+"deg)"});
$(".hourli").css({"transform":"rotate("+currentHours+"deg)"});
},1000);
特效的实现原理其实超级的简单,就是获取当前时间的 时,分,秒 并将其转换成rotate的值即可。
这个特效的难点就是在时间转换rotate值这一块,
http://sipeng.net/yanshi/clock/clock.html