2011-12-23 5 views
3

これはFirefox/Chromeのレイヤーを良好にフェードしますが、IE8ではレイヤーの不透明度を与えません。IE8で不透明度が働いていません

$('document').ready(function() { 
    $('.out-of-stock').each(function() { 
    $('.productImage', $(this)).css('opacity', '.25'); 
    $('.stockMessage', $(this)).removeClass('stockMessageOff'); 
    $('.stockMessage', $(this)).addClass('stockMessageOn'); 
    $('.stockMessage.stockMessageOn', $(this)).css('opacity', '1').text('Sold Out'); 
    }); 
}); 

ズームの割り当てに関するいくつかのstackoverflow投稿を読んでいます。 CSSクラスには、それはそれを修正していません。

:)

答えて

2

http://www.quirksmode.org/css/opacity.html IE8(以下)は不透明度をサポートしていないため、Fabianによって提供されているかなり厄介なコードを使用する必要があります。私はまた、いくつかに気づい

$('.productImage').fadeTo(0, .25); 

:それはすべての近代的な(そして現代ではない)のブラウザに応じるだろうと方法 -

私は簡単にオプションは、単にMadmartiganが示唆何とjQueryのfadeTo()を使用することだと思いますあなたのコードで改善できるもの.classセレクタだけを使用すると、タグ名を指定するよりも処理速度が遅くなりますが、jQueryはすべての要素を通過し、img(たとえば)要素の代わりにクラスに一致する必要があります。

$(function() { 
    $('div.out-of-stock').each(function() { 
    $('img.productImage', this).css('opacity', '.25'); 

    $('p.stockMessage', this).removeClass('stockMessageOff').addClass('stockMessageOn').css('opacity', '1').text('Sold Out'); 
    }); 
}); 

ジャストヒント:あなたはまた、少しスピードアップだけでなく、コード整然と作るだけでなく、チェーンのメソッド呼び出しにjQueryの能力を活用していません! :)

2

これは、クロスブラウザのサポートについてはIE8

$('.productImage', $(this)).css('-ms-filter','progid:DXImageTransform.Microsoft.Alpha(Opacity=25)'); 

のために働く必要があり、これを使用しよう:

$('.productImage', $(this)).css({'-ms-filter':'progid:DXImageTransform.Microsoft.Alpha(Opacity=25)','filter':'alpha(opacity=25)','-moz-opacity':'0.25','-khtml-opacity':'0.25','opacity':'0.25'}); 
1

はこれを使用します。

$('.productImage').fadeTo('fast', .25); 

はそれがお役に立てば幸いです。

関連する問題