假設我有一個0123'與position: relative
,其中一個div $foo
與position: absolute
。我想獲得相對於容器的位置$foo
。 jQuery讓這個簡單:如何獲取jQuery中可滾動區域內元素的絕對位置?
$foo.position()
返回與top
和left
屬性的對象,以像素爲單位指定。問題是,如果容器向下滾動或向右滾動,則此數字不再準確。具體來說,它不會改變。 jQuery計算position()
,使其等於$foo.offset() - $container.offset()
(其中offset()
給出窗口相對位置),並且$foo.offset()
隨着用戶滾動$container
而改變。
是的,沒錯。我的問題很糟糕...假設你沒有'$ container'的句柄。然後怎樣呢?換句話說,你將如何定義一個'$ .fn.positionInRelativeContainer()'函數? – 2010-07-02 00:49:34
@Trevor,添加了一些代碼來找到最接近的親戚 – 2010-07-02 01:19:37
我不認爲代碼會起作用,原因有兩個:第一,位置==='絕對'是一個錯字,對嗎?其次,它會返回每個相對的父親,而不是最近的一個。我想如果可能有多個嵌套的滾動元素,你可以在每個元素上添加'scrollLeft()'和'scrollTop()'。這聽起來在計算上非常昂貴,如果您想在用戶滾動時實時重做計算,這是一個問題。 – 2010-07-02 15:12:05