Biz 3 puanı aldı:, uç ve posta başlamak .JavaScript noktası açısı hesaplama işaret etmek
posta görüntü, bu animasyon jQuery ile yapılır, başlangıç ve bitiş noktasından eğri çizgi oluşturacak şekilde hareket eder.
Şimdi sıradaki adım, animasyon çalışırken posta görüntüsünün döndürülmesidir. Böylece başlangıç noktası ve bitiş noktasında 0 derece döndürülebilir, ancak animasyon yaparken, animasyonun yoluna doğru dönmelidir. Çok az var, bitti/başladığında
JSFiddle// 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'));
}
});
Ama yukarıdaki kodu doğru değil, açı yukarı yüz vermez:
denedim ne (resme bakın) geometri matematik deneyimi, bu yüzden döner hesaplamalar için yardım gerçekten takdir ediyorum.
Başlatılan yolun başlamadan çıkıp 90 ° 'lik bir açıyla girmemesi durumunda, başlatıldığında/sona erdiğinde neden yukarı bakması gerektiğini anlamıyorum. –
@MattBall gerçek animasyon aslında 90 ° açı ile başlar ve biter, görüntü hızlı bir şekilde photoshop ve üzgün bir ofset var – randomKek
Gördüğünüz bu mu? http://jsfiddle.net/R5dRd/ – bfavaretto