2012-03-08 43 views
0

這裏就是我所說的JS提琴:模態疊加是否需要絕對定位?

http://jsfiddle.net/r77K8/98/

我的疊加產生了具有禁用鏈接的外觀,但鏈接仍然點擊。我瀏覽了一些模態對話窗口的例子,希望找到解決方案。據我所知,我需要使用絕對定位。

我很猶豫,因爲實際上我的內容是動態填充的。看起來好像有很多額外的工作,試圖保持覆蓋層的正確尺寸 - 我真的很喜歡它現在的樣子,我只是想讓覆蓋層是父層的控件不可點擊。這可能嗎?

+0

您的示例似乎對我來說工作得很好。點擊'show overlay'鏈接後彈出窗口,我不能點擊'show overlay',直到我關閉彈出窗口。 – Travesty3 2012-03-08 17:15:06

+0

JS小提琴給了我錯誤的鏈接 - 它從我看的一個例子,廢話。一會兒。編輯:它現在是固定的。這是一個非常簡單的例子。 – 2012-03-08 17:16:32

回答

1

在你的例子中,它看起來像你有內容,你試圖禁用內部覆蓋div。爲了達到這個目的,你需要在內容上放置覆蓋區域,所以放在你的內容之後。這樣它就會覆蓋你的內容分區。

是的,你的覆蓋應該有絕對定位,以便你將它放在父容器的右上角,並給它100%的寬度和高度,以便它覆蓋整個父容器。

例如,參見this jsfiddle


編輯

嘗試this example代替。將內容和疊加層放入容器中。這樣,疊加層將只佔用頁面的這一部分。

請注意,容器div(divLink1divLink2)必須具有position:relative才能生效。根據this link中的absolute描述,「元素相對於其第一個定位的(非靜態的)祖先元素進行定位。」所以你必須將容器設置爲position:relative,但不要實際移動它們。

+0

是的,我完全理解這個概念。這是令人沮喪的,因爲內容的複雜性/位置是我想隱藏的。內容可以在ajax調用之後展開/收縮,而且我擔心我的覆蓋看起來像是在嘗試在擴展後恢復內容時「趕上」它。 – 2012-03-08 17:24:48

+0

請注意,您的jsfiddle不會使鏈接看起來被禁用 - 您已經失去了該功能。相反,它確實禁用單擊鏈接,但不會淡出它,但它似乎只是一個不透明度設置。 – 2012-03-08 17:36:46

+0

@SeanAnderson:查看更新的答案。 – Travesty3 2012-03-08 17:41:37