可能重複嵌套元素:
Disappearing images in IE8 jQuery Cycle的jQuery/CSS褪色的問題,在IE8(只)
我衰落的一組嵌套的元素,進出,揭示頁面的背景圖像。 嵌套的div/article元素已被賦予alpha通道不透明度,並且在IE中被半透明png覆蓋。
在FF,Chrome,ie6(yes,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跟蹤:fade not working on inner divs in ie8
按本網頁上的評論我申請filter: inherit;
給孩子的容器,這發揮了作用。現在內容(文本和圖像)淡入淡出,但背景(不透明或(半透明))不是。它在延遲期間仍然保持不變,然後卡入可見的不可見狀態。
任何人有任何想法如何進一步此解決方法?編輯:
在ie9中測試,它工作得很好。這個bug只與ie8相關。
謝謝,馬特。
當你說「你必須相應地更新jquery」時,我需要更新什麼? – lawsonium 2012-04-18 07:11:03
我剛剛測試過這個,有兩個問題: 1.問題仍然存在; jQuery淡入效果不起作用,它只是在延遲後突然捕捉到不可見而沒有淡入淡出。 2.將過濾器應用於css呈現具有相同不透明度的所有內容(文本和圖形)。 我知道IE的所有形式都是垃圾,但任何想法? – lawsonium 2012-04-18 15:53:10
嗨,我剛剛測試過你的jsFiddle解決方案,它在IE8中測試時的行爲與我的相同。延遲時間不會消失,然後立即消失。抱歉。 – lawsonium 2012-04-19 22:09:28