获得动画的位置/学位

时间:2011-08-03 02:16:12

标签: jquery animation

我想在此动画中获取.me的当前位置(0到360°之间):

http://jsfiddle.net/WcyyF/117/

因此,悬停事件不会从0启动动画,而是从x继续播放。

2 个答案:

答案 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/