我嘗試使用下面的CSS來創建一個對話窗口:Internet Explorer中:問題與疊加/阻
#blackOverlay {
display: block;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #000000;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
filter: alpha(opacity=80);
-moz-opacity: 0.8;
-khtml-opacity: 0.8;
opacity: 0.8;
z-index: 1001;
}
#whiteOverlay {
display: block;
position: absolute;
top: 10%;
left: 10%;
width: 80%;
height: 80%;
z-index:2002;
overflow: auto;
background: #c4e982;
}
及以下JS:
var div = $("<div id='blackOverlay'></div");
$("body").prepend(div);
var div = $("<div id='whiteOverlay'></div");
div.html("Loading......");
var u = "myurl?function=example";
div.load(u);
$("body").prepend(div);
這正常工作在Firefox中, Safari,Chrome和Opera。
不幸的是,它在IE中失敗,至少在版本8.0上。顏色/不透明度僅適用於身體,不適用於其他DIV。儘管加載的內容正確顯示(位於屏幕的中心,前面),但並非「隱藏」blackOverlay後面的所有內容,所有內容(鏈接,按鈕,輸入字段...)仍然可用。
任何幫助表示讚賞!
謝謝jduren指着我在正確的方向。試圖描述here來處理它在類似的方式後,我想出了以下解決方法:
function shime() {
jQuery.each(jQuery.browser, function(i) {
if($.browser.msie){
$('div').each(function() {
$(this).addClass("shine");
});
}
});
}
function unshime() {
jQuery.each(jQuery.browser, function(i) {
if($.browser.msie){
$(".shine").each(function() {
$(this).removeClass("shine");
});
}
});
}
下面CSS:
div.shine {
display: none;
}
我知道這不是最好的解決辦法,但我由於IE的「功能」而厭倦了在圈子裏跑步。
嘗試設置一個z-index爲1的正文和/或使用append代替前置 – lnrbob 2010-09-22 12:21:32
謝謝!我嘗試了兩種分開和合並,遺憾的是沒有任何影響。 – MrG 2010-09-22 12:26:35