2012-01-16 42 views

回答

10

可以同時指定lefttop屬性:

$(this).animate({left: '+=30px', top: '+=30px'}, 1000); 

在這種情況下,t他的角度將是45°。

要指定不同的角度,首先計算cos(α)和sin(α)。餘弦指定你必須向右走多遠,以及竇要走多遠,才能在指定的角度上形成1個像素的距離。如果要覆蓋30像素距離,請將正弦和餘弦結果乘以30.

+0

犯規罪(45)和cos(45)= 0.7071067812 – thelost 2012-01-16 21:04:51

+5

萬一第二段無厘頭:http://jsfiddle.net/ SMvj3/3/ – 2012-01-16 21:05:15

+0

o cool radians,thx – thelost 2012-01-16 21:06:06

0

我只是想糾正32bitkid中由Yogu提供的最佳答案中的錯誤。

如果Math.PI被-180(而不是180)分隔,將導致div的位置正確。 90度的角度是向下而不是向上移動。

$(function() { 
    var dist = 30; 
    var angle = 90; 
    var x = Math.cos(angle*Math.PI/-180) * dist; 
    var y = Math.sin(angle*Math.PI/-180) * dist; 
    $("div").animate({'left': '+='+x+'px', 'top': '+='+y+'px'}, 1000);  
}) 

下面是更新小提琴:http://jsfiddle.net/9yL8hxnz/

相關問題