2012-06-19 71 views
2

防止鼠標交互我有一個基地html元素和我有一個包含一些按鈕的覆蓋元件。與透明元件背景

我想鼠標能夠與基本元素以及與覆蓋中的按鈕交互兩者。

的問題是,所述覆蓋捕獲基本元件的鼠標事件。

有沒有辦法,我可以禁用覆蓋的透明背景的鼠標交互的方式(如IE似乎做),同時保持鼠標交互的覆蓋內的按鈕?或者我需要更改我的代碼的結構?

Fiddle

+1

'指針的事件:none'。 – alex

+1

這不起作用,它完全禁用覆蓋,包括按鈕。我需要一種方法來防止覆蓋層的透明背景捕獲鼠標事件,而不是整個覆蓋層。 – jsgroove

回答

0

這裏有一個方法。

與覆蓋元件: http://jsfiddle.net/XC95u/11/

沒有覆蓋元件: http://jsfiddle.net/XC95u/3/

+0

我的jsFiddle示例從我的實際代碼中大大簡化,創建一個解決方法比簡單示例更復雜。我最感興趣的是,如果有可能或者不讓透明背景忽略鼠標事件(如IE似乎這樣做)或者進一步傳播它們。除此之外,我將不得不改變代碼的結構。 – jsgroove

+0

你可以使用elementFromPoint和隱藏()用於更復雜的基礎DIV與它內部的多個元素 - http://jsfiddle.net/XC95u/18/ –

0

我修改HTML結構和使用的z-index來控制的div的位置。

HTML:

<div class="main"> 
    <div class="base"></div> 
    <div class="overlay"> 
    </div> 
    <div class="button left"></div> 
    <div class="button right"></div> 
</div> 

CSS:

.main { 
    width: 350px; 
    height: 150px; 
    position: relative; 
} 
.base { 
    background-color: #c0c0c0; 
    width: 100%; 
    height: 100%; 
} 
.overlay { 
    position: absolute; 
    top: 0; 
    width: 100%; 
    height: 100%; 
    z-index: -1; 
} 
.button { 
    background-color: #707070; 
    width: 30px; 
    height: 30px; 
    position: absolute; 
    top: 60px; 

    z-index: 99; 
} 
.right { 
    right: 0; 
}​ 
+0

恐怕我的jsfiddle例子非常從我的實際代碼簡化創建一個解決方法比簡單的例子更復雜。我知道如何創建一個解決方法,但在這個時候我在,如果它是可以或不可以做的透明背景要麼忽略鼠標事件(如IE似乎做),或者將它們進一步傳播最感興趣。除此之外,我將不得不改變代碼的結構。 – jsgroove