2013-01-13 73 views
3

不計算元素的位置,然後發射自己的「事件」。當元素被另一個元素覆蓋時,有沒有辦法獲得一個mouseover事件?

original fiddle (can be fixed with z-index)

better fiddle (a situation where z-index can't work)

example

<div class='under'></div> 
<div class='over'></div> 

.over { 
    display:inline-block; 
    position:absolute; 
    height:100px; 
    width:100px; 
    background: rgba(0, 255, 0, .3); 
} 

.under { 
    display:inline-block; 
    position:absolute; 
    height:26px; 
    width:26px; 
    top:37px; 
    left:37px; 
    background:rgba(0, 0, 255, 1); 
} 
+0

我想不,但我可以問你爲什麼使用它? –

+0

只是要清楚,你是否想讓綠色在Y盤旋的同時成爲Y? –

+0

A [hack](http://jsfiddle.net/GLCPV/1/)爲原始案例。雖然FF中的結果似乎閃爍,但其他所有瀏覽器都正常工作... – Teemu

回答

2

除非我已經錯過了你的榜樣的時候,你可以只添加一個Z-index屬性來你的CSS:

.over 
{ 
    display:inline-block; 
    position:absolute; 
    height:100px; 
    width:100px; 
    background: rgba(0, 255, 0, .3); 
    z-index:1; 
} 

.under 
{ 
    display:inline-block; 
    position:absolute; 
    height:26px; 
    width:26px; 
    top:37px; 
    left:37px; 
    background:rgba(0, 0, 255, 1); 
    z-index:2; 
} 
+0

我添加了一個更具體的例子。上面的一個人給了這個鏈接,它看起來像一個相當不錯的答案http://stackoverflow.com/questions/5855135/css-pointer-events-property-alternative-for-ie – user1873073

+0

我最終自己計算的coords。 – user1873073

2

我不認爲這是可能的,你可以把一個z-index的在你的CSS:

.under { 
    z-index:1; 
} 

,然後修改你的JS:

under.on("mouseover", function() { 
          blue.html("Y"); 
          green.html("Y"); 
}); 

EDITED 錯誤的鏈接。

這裏的Fiddle

+0

謝謝這個人幫不了忙,但我需要的東西完全一樣。很有幫助。 –

2

添加pointer-events:none;over DIV:

.over { 
    display:inline-block; 
    position:absolute; 
    height:100px; 
    width:100px; 
    background: rgba(0, 255, 0, .3); 
    pointer-events:none; 
} 

DEMO:http://jsfiddle.net/ckaPU/1/

+2

在你的例子中,當鼠標懸停在 –

+0

@Yusaf Khaliq上時,綠色不再起作用我只是按照OP的要求操作,這是 – Eli

+0

突出的最簡單的方法!但沒有IE10或歌劇 – user1873073

相關問題