2012-07-16 65 views
1

Jquery UI的.position()函數似乎在滾動時固定的元素上被破壞。例如,我試圖在頁面頂部的某個固定元素(如標題)的「中心頂部」放置一個新元素(以下演示中的藍色塊)。我期望.position()中的碰撞檢測將元素翻轉到「中心底部」。這是第一次,但如果有人捲動他的頁面的部分方式,它完全破碎。固定元素上的Jquery UI .position()

這裏有一個演示:http://jsfiddle.net/lrocksmashtime/MJwdP/

看到效果嘗試點擊「點擊」既當你沒有滾動結果窗口,然後滾動了一下後,再次單擊它。

回答

5

您的代碼:

my: "bottom", 
at: "top", 

可以讀作: 「在」 目標元素頂部位置 「我的」 元素底部

正確的代碼是:

my: "top", 
at: "bottom", 

可以讀作爲:位置「我的」元素頂部「在」目標元素底部

這工作正如你所期望的:http://jsfiddle.net/MJwdP/18/

+0

我很欣賞這個回覆,不敢相信我直到現在纔看到它。但是,這並沒有解決我關於自動碰撞檢測的最初問題。很顯然,藍色盒子不適合放在最上面。我最初對.position的調用強制碰撞檢測將方框移動到目標的底部。如果向下滾動頁面,該框會位於頂部,儘管不可見。現在我發現這真的不是一個bug,但是如果碰撞檢測考慮到被定位的元素的可見性,那將是很好的。 – Leoncelot 2013-04-07 03:59:46