以一定角度移动,jquery,animate()

Move at an angle, jquery, animate()?

本文关键字:jquery animate 移动      更新时间:2023-09-26

使用时有没有方法指定角度

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

我想要

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

48将是角度

您可以同时指定lefttop属性:

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

在这种情况下,角度为45°。

要指定不同的角度,请首先计算cos(α)和sin(α)。余弦指定你必须向右走多远,正弦指定你必须向上走多远,以在指定角度内形成1个像素的距离。如果您想覆盖30个像素的距离,请将正弦和余弦结果乘以30。

我只是想从Yogu的最佳答案中纠正32bitkid的优秀示例中的一个错误。

如果将Math.PI除以-180(而不是180),则会得到除法的正确位置。90度角是向下而不是向上移动div。

$(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/