多分これはあなたにとって良い解決策ですか(私にとってはそうです)。解決策はシンプルですが効果的です (そしてとてもいいです)。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 コードを変更/ハッキングする必要はありません。
それが役に立てば幸い。