2009-06-08 5 views
0

さて、私は透明のdivや背景が CSS :)透明に設定されてい..のdivタグの下に右に配置されIE 7は、Javascriptの透明divがonclickの

#lowerLayer 
{ 
    position: fixed; 
    top: 0px; 
    left: 0px; 
    right: 0px; 
    bottom: 0px; 
    width: 100%; 
    height: 100%; 
    background-color: Transparent; 
    cursor: help; 
    z-index: 1; 
} 

、そこの下で私が持っていますa blueprintレイアウト。

jqueryの(これは、$(文書で実行される).ready):

$("#lowerLayer").click(function() { 
    $(this).fadeTo("fast", 0, function() { 
     $(this).hide(0); 
    }); 
}); 

私のレイアウトはオペラ10で完璧に動作し、私はそれに...オペラ9で動作推測するが、IE 7のバグ層という下のzインデックスを持っている彼らは透明のdivを超えているとして...

答えて

2

簡単な解決策は、ちょうど終了</body>前(HTMLに透明のdiv(#lowerLayer)が最後に置くことであろう行動している。

いくつかのブラウザでは既知の問題です(IEなど)

編集:私のコメントに記載されているように、blockUI pluginは、オーバレイでページをマスクしたい場合に必要なすべてを処理します。

+0

だけでなく、それは試してみる価値があったが、それはやりました助けてはならない:(+1 – Peter

+1

透明なdivが最高のz-indexを持ち、それがHTMの最後にあるときLでは、IEのドロップダウンリストを除いて、ページ上の他のものより常に上になります(これはバグです)。より良いオプションは、blockUIプラグインを使用することです(私は私の答えでリンクを追加しました) –

4

私はIE7と同じ問題があり、簡単な解決策を見つけました。 代わりにCSSを使用してdivを透明にするには、JavaScriptを使用して不透明度を設定します。あなたの例に続き

CSSスタイル

#lowerLayer {
position: fixed;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
background-color: #000;
cursor: help;
z-index: 1;
}

JavaScriptコード(例えばDOMツリーがロードされた後)

document.getElementById("lowerLayer").style.filter = "alpha(opacity=0)";

+1

これは実際には正しい答えです。 divが空で透明(背景色なし)の場合、IEはその上でクリックを捕捉しないと考えられます。それを背景色にして不透明度を0に設定すると、この問題が回避されます。 –

関連する問題