2012-11-21 55 views
0

實施例的代碼的任何元素:http://jsfiddle.net/ZAm2A/3/絕對定位塊againt在文檔

的目標是具有不同的HTML結構中的任何頁面上定位對(相對於)任何DOM元素某些彈出(div.absolute-block)窗口。 爲了能夠絕對地定位彈出窗口,我們需要將它嵌入到那個dom元素中,之前已經用相對或絕對定位的塊(本例中爲div.relative1)包裹了div.absolute-block。
麻煩的是,如果dom元素,我們嵌入彈出,具有overfillw塊:隱藏(div.overflow1)之間的祖先,div.overflow1可能會裁剪彈出。 div.overflow1可能相對定位,我們不能影響它在我們的情況。

第二種方法是將我們的彈出窗口追加到頁面主體。在這種情況下,我們面臨着將彈出框定位到某個dom元素的問題。我們可以計算並設置文檔就緒事件彈出的頂部和左側屬性。但在窗口大小調整,ajax內容更改或任何事件更改跟蹤元素的位置的情況下,我們必須重新計算彈出位置。

我想是否可以有一些新的HTML 5功能,讓我定位彈出沒有嵌入到DOM元素,我想位置彈出相對?任何其他的想法表示讚賞。

回答

2

無法將子元素轉義爲overflow設置爲hidden的父元素。如果你想讓一個元素正好位於頁面某個元素的頂部,最安全的選擇是將它放在文檔的根目錄下,使用Javascript來計算和調整位置,並更新窗口大小等。 。您可能有興趣使用jQuery的position()(相對於父級)或offset()(相對於整個文檔)方法來幫助計算此值。

而且,這裏的overflow: hidden問題有點相關的問題,這可能會幫助:Make child visible outside an overflow:hidden parent

+0

感謝您的回覆,但跟蹤可能影響的位置和定位我們的彈出將工作不良的所有事件,會減慢。另外 - 有很多這樣的事件,很難跟蹤所有這些事件 – Rodion