有没有办法在使用
时指定角度$(this).animate({'left': '+=30px'}, 1000);
我想
$(this).animate({'48': '+=30px'}, 1000);
48将是角度
答案 0 :(得分:11)
您可以指定left
和top
属性:
$(this).animate({left: '+=30px', top: '+=30px'}, 1000);
在这种情况下,角度为45°。
要指定不同的角度,首先计算cos(α)和sin(α)。 cosinus指定你必须向右走多远,以及鼻窦走多远,以指定角度形成1个像素的距离。如果你想覆盖30像素的距离,将窦和余弦结果乘以30。
答案 1 :(得分: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/