:hover
この問題は、CSS の疑似クラスとonmouseover
jQueryonmouseout
のイベントとの競合が原因である可能性があります。ただし、緑色の目盛りにカーソルを合わせると、バックグラウンドがフィルターを失うという解決策を見つけたと思います。
JSFiddle
IE9 と Chrome でも動作するようです。JSFiddle は Firefox では機能しませんが、それは他の理由によるものだと思います。
基本的に、jQueryonmouseover
とonmouseout
イベントをイベントに再構築し (これが違いを生んだとは思えません)、クラスのプロパティhover()
を設定する行をコメントアウトしました。opacity
.grayscale
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');
});
アップデート
filter
CSSのプロパティに完全な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");
更新されたフィドル