2012-03-07 12 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