2012-04-11 52 views
2

我有一些正常的內容。然後,我做了另一個將要結束一切的div,用一個按鈕觸發。點擊只是一個按鈕通過覆蓋div

這個div是絕對位置,背景顏色:rgba,所以它可以是透明的。

當顯示div時,用戶不應該能夠點擊它下面的任何東西,只有一個按鈕(剛剛提到的那個)。

我無法做到這一點,如果我使用指針事件,它可以點擊訪問它下面的所有東西。

我只是想在div打開時點擊底部div中的按鈕。

非常感謝!

+0

「的preventDefault(); 「是你的朋友,但如果你的內容被正確覆蓋,這不應該發生。你有我們可以看看的例子嗎? – 2012-04-11 17:29:37

回答

1

如果您只想讓一個按鈕在疊加層處於活動狀態時可點擊,爲什麼不只是將該按鈕設置爲疊加層之上的唯一對象?

你可以然後你jQuery的修改給定的對象的CSS。如果疊加層處於活動狀態,則將該按鈕指向頂部。如果它不活動,則將按鈕恢復到正常狀態並隱藏覆蓋圖。如果你真的想按鈕看起來像它的覆蓋下,你甚至可以設定一個風格,使它看起來褪色(通過CSS不透明,或替代圖像)

http://jsfiddle.net/ckaufman/b6gza/

+0

它沒有z-index,只是透明度。 '您的區域{0}位置: top:1px; background-clip:padding-box; height:200px; background-color:rgba(255,246,142,0.6); border:solid; border-radius:10px; border-color:brown; display:none }' 我想我可以做到這一點,重複上面的div的按鈕,並設置相同的不透明度:)謝謝。問題會被設置在另一個之上。或者我怎麼能把它放在最頂端? – 2012-04-11 18:36:22

+0

在你的覆蓋div上,它已經被定位了:絕對的,所以你可以對它應用一個Z-index,比方說100.設置你的按鈕位置:relative,給它一個z-index 150,以便將它設置在overlay之上。 – ckaufman 2012-04-11 19:04:39

+0

希望澄清一下:http:// jsfiddle。net/ckaufman/b6gza/ – ckaufman 2012-04-11 19:09:53

0

首先,你爲什麼試圖在所有東西上覆蓋一個「透明div」?

其次,您可以通過檢查每個點擊事件來了解透明div的可見性,從而解決您的問題。

function anyclick() 
if(transparent div is visible) 
    do nothing 
else 
    do something 

從技術上講,儘管它不會觸發任何事件,但仍會使按鈕可點擊。

編輯編輯:你是否索引你的「透明div」或不?這也可能會導致問題。

+0

它爲用戶提供幫助,div apears,並提供一些工具提示,解釋下面的內容正在發生什麼。 它有太多的事件點擊,現在你提到zindex,我想我可以設置它的按鈕,所以它也出現了。 即時消息不在我的div上使用zindex。 – 2012-04-11 18:40:00