我們得到了3分:開始,末和郵件。的Javascript點對點角度計算
郵件圖像,移動在從起始點和結束點的曲線,這是通過完成的jQuery動畫。
現在下一步是在動畫運行時讓郵件圖像旋轉。所以在起始點和結束點它將旋轉0度,但在動畫時,它應該朝着動畫的路徑旋轉。 (見圖片)
我曾嘗試:
// Init dom elements
var $start = $('#start');
var $end = $('#end');
var $mail = $('#mail');
// Get position coordinates
var startPos = $start.position();
var endPos = $end.Position();
// Angle calculation
var getAngle = function(currX, currY, endX, endY) {
var angle = Math.atan2(currX - endX, currY - endY) * (180/Math.PI);
if (angle < 0) {
angle = Math.abs(angle);
} else {
angle = 360 - angle;
}
return angle;
};
// Mail angle
var getMailAngle = function() {
var currPos = $mail.position();
var endPos = $end.position();
return getAngle(currPos.left, currPos.top, endPos.left, endPos.top);
};
// Animate
$mail.animate({top: endPos.top, left: endPos.left}, {
specialEasing: {left: "easeInSine", top: "linear"},
// Executed each "animation" frame, so we rotate here.
step: function() {
var angle = getMailAngle();
$(this).css('transform', 'rotate(' + angle + 'deg'));
}
});
但上面的代碼是不正確的,啓動時的角度不正視/結束,我很少幾何數學的經驗,所以我真的很感謝旋轉計算的幫助。
我不明白爲什麼它應該正面朝上開始/結束,因爲圖中的路徑沒有退出開始並以90°角輸入結束。 – 2013-04-04 02:26:33
@MattBall真正的動畫確實以90°角度開始和結束,圖像很快在Photoshop中,並有一個可悲的偏移 – randomKek 2013-04-04 02:30:11
這是你所看到的嗎? http://jsfiddle.net/R5dRd/ – bfavaretto 2013-04-04 02:33:05