答案 0 :(得分:2)
数学将参与其中。
您可以使用起始角度设置attr('data'),因此当您悬停并停止时,您必须再次设置所有角度。
这是伪代码:
length_x = $(this).position().left - center.left;
angle = arcos(length_x/radius);
$(this).attr('data') = angle;
答案 1 :(得分:1)
另一个数学稍微复杂的选项是跟踪动画何时开始以及何时被中断。由于它以恒定速度运行,您可以使用经过的时间计算出每个元素应该经过多少度数,并相应地更新起始位置。粗略地说:
var elapsedTime = new Date().getTime() - this.startedAt;
var elapsedDegrees = Math.floor(360 * (elapsedTime / 20000));
$(".me").each(function() {
$(this).attr('data', parseInt($(this).attr('data')) - elapsedDegrees + 360)
});
以下是一个示例:http://jsfiddle.net/WcyyF/120/