Jquery是否从相对位置设置动画到绝对位置?可能的

Jquery是否从相对位置设置动画到绝对位置?可能的,jquery,jquery-animate,Jquery,Jquery Animate,我试图在屏幕上设置两个图像的动画。理想情况下,我希望图像从浏览器窗口(无论大小)的中心开始,并将其移动到浏览器窗口的准确位置(例如,从顶部移动100px,从左侧移动100px)。我的动画效果很好,但仅相对于起始位置。我不知道如何让它移动到一个特定的位置而不固定起点(这显然违背了居中的想法) 以下是我目前正在使用的代码: $('img#one').delay(300).animate({left: '-=485', top: '-=448'},500); $('img#two').delay(80

我试图在屏幕上设置两个图像的动画。理想情况下,我希望图像从浏览器窗口(无论大小)的中心开始,并将其移动到浏览器窗口的准确位置(例如,从顶部移动100px,从左侧移动100px)。我的动画效果很好,但仅相对于起始位置。我不知道如何让它移动到一个特定的位置而不固定起点(这显然违背了居中的想法)

以下是我目前正在使用的代码:

$('img#one').delay(300).animate({left: '-=485', top: '-=448'},500);
$('img#two').delay(800).animate({left: '-=645', top: '-=399'},800);
$('img#dash').delay(800).animate({left:'-=1398'},800);
以下是HTML:

<div id="logowrap"><img id="one" src="images/one.png"><img id="two" src="images/two.png"></div>
<img id="dash" src="images/dash.png">
</div>

非常感谢您的帮助!谢谢

您可以尝试使用
.offset()
方法添加元素的绝对位置----使用该方法,您可以在文档级别在0,0处设置图像动画,然后添加例如100 left和100 top,以从文档0,0处获得100100处的绝对位置(抱歉,已经晚了,但我希望您理解我的漫谈)多亏了Peol,我才明白了这一点,他的回答引导我朝着正确的方向前进。FWIW,这是我的最终代码:

$(document).ready(function(){   
var offsetg = $('img#one').offset();
offsetgmoveL = offsetg.left - 42;
offsetgmoveT = offsetg.top + 282;
var offsetM = $('img#two').offset();
offsetMmoveL = offsetM.left +115;
offsetMmoveT = offsetM.top + 232;
    $('img#one').delay(300).animate({left: '-=' + offsetgmoveL + '', top: '-=' + offsetgmoveT + ''},500);
    $('img#two').delay(800).animate({left: '-=' + offsetMmoveL + '', top: '-=' + offsetMmoveT + ''},300);

谢谢你的回复。但我不知道如何将动画与偏移量结合起来,使我的图像浮动到那个位置……你应该将其添加到负动画值中,例如,
{left:'-='+$(elem).offset().left}
啊,我说得太快了。差不多了?作品奇怪的是,当我调整窗口大小时,图像的动画位置略有不同(都在10-15像素的范围内,视窗口大小而定。我认为偏移量是绝对的,有什么想法吗?谢谢!ugh x 2:这段代码在FF和Safari中呈现的效果似乎不一样!(在safari中或多或少可以工作,在FF中可以在屏幕外制作动画)。帮助!发现这与firefox在窗口中显示滚动条时计算像素的方式有关。为FF单独计算了一次,现在可以工作了。
$(document).ready(function(){   
var offsetg = $('img#one').offset();
offsetgmoveL = offsetg.left - 42;
offsetgmoveT = offsetg.top + 282;
var offsetM = $('img#two').offset();
offsetMmoveL = offsetM.left +115;
offsetMmoveT = offsetM.top + 232;
    $('img#one').delay(300).animate({left: '-=' + offsetgmoveL + '', top: '-=' + offsetgmoveT + ''},500);
    $('img#two').delay(800).animate({left: '-=' + offsetMmoveL + '', top: '-=' + offsetMmoveT + ''},300);