【发布时间】:2013-10-08 13:31:26
【问题描述】:
我正在制作一些简单的 css3 手表,它的工作方式是这样的(只需计算分钟、秒和小时轮换并应用它
var updateWatch = function() {
var seconds = new Date().getSeconds();
var hours = new Date().getHours();
var mins = new Date().getMinutes();
var sdegree = seconds * 6;
var srotate = "rotate(" + sdegree + "deg)";
var hdegree = hours * 30 + (mins / 2);
var hrotate = "rotate(" + hdegree + "deg)";
var mdegree = mins * 6;
var mrotate = "rotate(" + mdegree + "deg)";
$(".jquery-clock-sec").css({"-moz-transform" : srotate, "-webkit-transform" : srotate});
$(".jquery-clock-hour").css({"-moz-transform" : hrotate, "-webkit-transform" : hrotate});
$(".jquery-clock-min").css({"-moz-transform" : mrotate, "-webkit-transform" : mrotate});
}
所有动画都有一些缓动。
一切正常,但是当某个标记完全旋转时,360 度变为 0 度,然后标记使所有圆圈返回。有什么简单的方法可以避免吗?
【问题讨论】:
-
也许是
<value> % 360?例如"rotate(" + mdegree % 360 + "deg)" -
因为这些值永远不会大于 360,所以不会有任何改变。
-
你能设置一个重现问题的小提琴吗?
-
做一个诊断函数,在jQuery执行之前将sdegree、hdegree、mdegree、srotate、hrotate和mrotate的值打印到控制台?
标签: javascript css transform