2012-03-07 16 views
0

我无法获取元素的位置,因为我的动画很长,$(this).position()。top计算得太早。jQuery animate - 获取元素的未来位置

如何获取元素的未来位置值,然后将其移动到该位置?

+1

取当前位置,并将您发送的调整值添加到'.animate'调用中? – 2012-03-07 20:39:07

+0

未来的位置不是一个有限的值,它总是不同的。在这种情况下,它是带有文字的手风琴。 – Collin 2012-03-07 20:46:14

回答

1

这不是你想要的。您想要在动画完成后获取元素的位置。您需要为您的动画添加回调函数,并从该回调函数内调用该位置。在这里你去 - >

$("whatever").animate({ 
    //do stuff for animation 
}, 'delay', function(){ 
    //our animation has completed, this is our callback function. 
    //we can now successfully get our position. 
    $(this).position().top 
}); 

希望这会有所帮助!

  • 此外

请考虑提高你接受的评价,20%要么意味着你的问题的格式不好,或者你没有关注的社会准则。请阅读常见问题,了解与Stackoverflow.com

https://stackoverflow.com/faq交互

  • 旁注:

您也将获得徽章 '分析' 用于读取整个常见问题解答。我强烈建议。

+0

一旦动画结束,我不需要元素的位置。我需要动画开始之前元素的结束位置。 P.S. 我的问题格式不好,谢谢。我对此很新,而且我没有掌握这个术语。如果我没有收到可行但有帮助的答案,我会点击向上箭头给他们+1。 – Collin 2012-03-07 21:11:41

+0

没问题。我想我很难理解问题是什么。 $(this).position()。top将为您提供来自最近的容器的保证金,该容器具有一个位置:relative(最接近'offset parent')。这就是你想要的吗?或者你想要相对于文件的位置?窗户? – Ohgodwhy 2012-03-07 22:02:56