有指定角度的方式使用以一个角度移动,jquery,animate()?
$(this).animate({'left': '+=30px'}, 1000);
当我想
$(this).animate({'48': '+=30px'}, 1000);
的48人是角
有指定角度的方式使用以一个角度移动,jquery,animate()?
$(this).animate({'left': '+=30px'}, 1000);
当我想
$(this).animate({'48': '+=30px'}, 1000);
的48人是角
可以同时指定left
和top
属性:
$(this).animate({left: '+=30px', top: '+=30px'}, 1000);
在这种情况下,t他的角度将是45°。
要指定不同的角度,首先计算cos(α)和sin(α)。余弦指定你必须向右走多远,以及窦要走多远,才能在指定的角度上形成1个像素的距离。如果要覆盖30像素距离,请将正弦和余弦结果乘以30.
我只是想纠正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/
犯规罪(45)和cos(45)= 0.7071067812 – thelost 2012-01-16 21:04:51
万一第二段无厘头:http://jsfiddle.net/ SMvj3/3/ – 2012-01-16 21:05:15
o cool radians,thx – thelost 2012-01-16 21:06:06