重複の可能性:
IE8 jQuery サイクルで画像が消える
ページの背景画像を表示するために、入れ子になった要素のセットをフェードインおよびフェードアウトしています。ネストされた div/article 要素にはアルファ チャネルの不透明度が与えられており、これは IE の半透明の png でオーバーライドされます。
フェードインとフェードアウトは、FF、Chrome、ie6 (はい、ie6!!!)、ie7、ie9 では正常に機能しますが、残念ながら ie8 では機能しません。
HTML:
<div id="wrapper">
<div id="limiter">
<div id="mainContent" class="cornerRadius10 alpha40Black">
<header class="cornerRadius6 alpha50Black">
<h1>Title Here</h1>
</header>
<article class="contentArticle cornerRadius6 alpha50Black">
Content here.
</article>
<article class="contentArticle cornerRadius6 alpha50Black">
More content here.
</article>
</div>
</div>
</div>
CSS:
.alpha40Black {
/* Fallback for web browsers that doesn't support RGBa */
background: rgb(0, 0, 0);
background: url("../images/blk-40.png");
/* RGBa with 0.4 opacity */
background: rgba(0, 0, 0, 0.4)
}
.alpha50Black {
/* Fallback for web browsers that doesn't support RGBa */
background: rgb(0, 0, 0);
background: url("../images/blk-50.png");
/* RGBa with 0.5 opacity */
background: rgba(0, 0, 0, 0.5)
}
jQuery:
$('#wrapper').children().animate({
opacity: 0
}, 2000 );
setTimeout(function() {
$('#wrapper').css('visibility' , 'hidden');
}, 2000);
私もこのjQueryを試しました:
$('#limiter').children().fadeOut( 2000 );
上記の任意の組み合わせは、ie8 を除くすべてのブラウザーで機能します。ラッピングする親要素にフェードアウトまたはフェードイン機能を適用しようとすると、一時停止 (フェードアニメーションが設定されている時間の長さ) が発生し、フェードしたい要素が即座に消えます。フェード効果。
私はこれに数日間取り組み、解決策と可能な修正/回避策についてGoogleを使い果たしましたが、何も近づいていません.
誰にもアイデアはありますか?
よろしく、マット。
編集:
この問題のデバッグである程度の進歩を遂げました。
半透明の背景への参照をすべて削除し、jQuery のフェード アニメーションを適用して、背景が実際の問題を隠していないことを確認しようとしました。
興味深いことに、半透明の背景が適用されていなくても (完全に不透明な背景でもテストされています)、フェード アニメーションは機能しません。全く同じ症状。だから私は簡単な検索を行い、jQuery Bug Tracker でこれを見つけました: ie8 の内部 div でフェードが機能しない
このページのコメントに従って、私filter: inherit;
は子コンテナに適用しましたが、これが違いを生みました。現在、コンテンツ (テキストと画像) はフェード インとフェード アウトしていますが、背景 (不透明または (半) 透明) はそうではありません。遅延の間は変更されず、非表示または表示にスナップします。
この回避策を進める方法について何か考えがある人はいますか?
編集:
ie9でテストされ、問題なく動作します。このバグは ie8 のみに関連しています。
ありがとう、マット。