2010-11-16 60 views
2

如何在屏幕中間打開一個彈出窗口(基本上是一個具有高z-index的隱藏div),即使用戶向下滾動一下:相對於用戶位置彈出一個彈出框

  • 當我使用position:absolute;left:50%;top:50%;時,彈出窗口在屏幕中間打開,但當用戶向下滾動頁面時,窗口在頁面中間保持「卡住」狀態。

  • 當我使用position:fixed;top:50%;left:50%;窗口沒有「卡住」,但它不位於屏幕中間(如果用戶在打開它之前滑下來,窗口會在頁面的開始處打開,並且用戶必須向上滾動才能看到它)。

我該如何實現這兩個目標?在相對於用戶當前位置的中心打開彈出窗口,並在打開它之後鬆開它。 (當在事件中打開「朋友列表」或「參加/不參加列表」時,可以在Facebook上看到這種彈出式窗口)。

回答

1

position: fixed; top: 50%; left: 50%; width: 600px; height: 400px; margin-left: -300px; margin-top: -200px;
重要的是margin-left和margin-top是負值的一半是寬度和高度值,以確保彈出窗口完全位於屏幕中間。
或者,您可以使用position: absolute並使用JavaScript將style.top設置爲(document.body.scrollTop + document.documentElement.scrollTop + 100)+"px",如果您希望它保留在文檔上的相同位置 - 我認爲這是您所追求的。

0

您需要使用Javascript才能執行此操作,因爲您需要知道用戶視口的尺寸。

你可以把Javascript放到你的CSS裏(不要做這個!!!),或者你可以創建一個實際的Javascript來處理窗口滾動事件。