多分これはあなたにとって良い解決策ですか(私にとってはそうです)。解決策は単純ですが効果的です(そして非常に素晴らしいです)。IEの親の背景に色がない場合、IEにはアルファ透明度の問題があります(完全な透明度)。
ここで行うこと(以下の例を参照)は、最初にほぼ透明な(目には透明な)divを追加することです。これはキャンバス/コンテナ内の最初のdiv(=> divなど)であり、絶対に配置されるため、このdivの後のすべてのコンテンツは最初のdivの上に配置され、これが他のすべてのコンテンツの背景になりますこのキャンバスの内側。
現在背景があるため、フェードインまたはフェードアウト(不透明度を変更する場合)またはキャンバスの不透明度を100未満の値に設定すると、IEは厄介な黒い斑点(ピクセル)または黒い領域を表示しません。
方法-100x100の画像の例:
<div id="mycanvas" style="display:none;">
<div style="position:absolute; background:#FFF; display:block; filter:alpha(opacity=1); opacity:0; width:100px; height:100px;">
</div>
<img id="myImage" src="example.png" width="100" height="100"/>
</div>
jQueryを使用して画像をフェードインまたはフェードアウトするには:
$("#mycanvas").fadeIn("slow", function()
{setTimeout(function(){$("#mycanvas").fadeOut("slow");},2000 );}
);
これも可能です:
$("myImage").fadeIn("slow");
それでおしまい!
良い点は、このソリューションがVML / SVG(Raphael)またはアルファ透過性を持つ他のコンテンツでも機能することです。また、この「ハッキング」は他のブラウザに影響を与えないため、JSコードを変更/ハッキングする必要はありません。
それが役に立てば幸い。