2013-04-05 84 views
2

我在IE9中遇到了一些鼠標懸停狀態問題,並希望有人能幫助我。鼠標懸停灰度圖不能在IE9中工作

這個元素將是各種尺寸,所以這就是爲什麼我不願意使用背景圖像精靈。

我的問題是,當我將鼠標懸停在圖像變成灰色的項目,然而,當我將鼠標懸停在中間灰度效果蜱丟失,如我猜測IE9認爲我不再徘徊在項目, 當我。

http://www.tindlemanor.co.uk/jtest/cameron/11.html

我打了關於與鼠標移到例如在jQuery和它在IE9的作品,所以我guesing我做的東西有點傻了。

它適用於所有其他瀏覽器,包括ie8和ie7,如果這發生在7然後我可以理解它,只是讓它滑動,但事實上它在9,意味着我需要解決這個問題。

感謝大家提前。

卡梅倫

+0

我看到你嘗試在代碼中使用mouseenter/mouseleave事件,但它是評論了 - 爲什麼,這是不是按預期工作?這些事件實際上是更喜歡的事件 - 因爲當您將鼠標懸停在子元素上時,mouseover/mouseout已經觸發,這不是您想要的。 – CBroe 2013-04-05 10:46:42

+0

我試圖使用mouseenter/mouseleave,但它似乎沒有爲我工作,我也嘗試懸停狀態,鼠標進出,可悲似乎沒有任何工作。 – user1844398 2013-04-05 11:08:16

回答

0

問題可以通過在CSS中:hover僞類和jQuery的的onmouseoveronmouseout事件之間的衝突引起的。我想我已經找到了解決的背景下失去了過濾器,當你將鼠標懸停在綠色的勾,但:

JSFiddle

出現在IE9和Chrome的工作依然。 JSFiddle在Firefox中不起作用,但我認爲這是由於其他原因。

我基本上改組了jQuery onmouseoveronmouseout事件到事件hover()(I懷疑這取得的差),並評論指出,在.grayscale類設置opacity屬性的行。

看看IE9,讓我知道你的想法。

$(document).ready(function() { 

    $(".inspire-me").hover(function() { 
     $(this).addClass("on"); 
    // $(this).find('.grayscale').css('opacity', '0.50'); 
     $(this).find('.content-lower').css('opacity', '1'); 
     var margin = $(this).find('.grayscale').height()/2; 
     var half = margin - 17; 
     $(this).find('.hide').css('visibility', 'visible'); 
     $('.hide').css({'top' : half}); 
    } 
    , 
    function() { 
     $(this).removeClass("on"); 
    // $(this).find('.grayscale').css('opacity', '1'); 
     $(this).find('.hide').css('visibility', 'hidden'); 
    }); 

UPDATE

我已經在CSS中指定的filter財產全SVG XML得到了在Firefox這個工作現在:

filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale"); 

Updated Fiddle

+0

它似乎在IE9中工作正常,非常感謝。我會做一些進一步的調查,爲什麼它不工作在Firefox – user1844398 2013-04-05 12:46:31

+0

不用擔心,你正在取得進展!如果這個答案有幫助,請把它設置爲Accepted?非常感謝:) – 2013-04-05 13:05:28

+0

@ user1844398現在在Firefox中工作,請參閱更新:D – 2013-04-05 13:50:21