2012-04-11 74 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