2012-01-14 8 views
1

私は$(document).ready()にログインしてサインアップするフォームを表示している隠しdivを持っています。従来のJavascriptアラートが表示されているときと同じように、画面を非表示にしようとしています。私はテスト段階にあり、ボディに不透明度を設定するクラスを使用していますが、ポップアップdivにも適用されます。私はそれの後ろのすべてに不透明度を設定しようとしています。ここに私が持っているものがあります。CSSがJavascriptのような画面を表示しない

$("body").not("#overlay").addClass("suppress"); 

私はdiv要素を除外するために他のいくつかのバリエーションを試してみたが、私はbodyに適用していますので、それはそれが可能だかわかりません。正しい方向に私を導く提案がありますか?

+0

あなたは、本体と、ポップアップの間に半透明のdivをplonkことができます。それはおそらく体へのマウスの入力を妨げるでしょう、それはそれをモーダルに感じさせます。 –

+0

@MattyKそれはおそらく正しいものだから、答えとして投稿してください。 –

+0

本当にいいと思う、試してみるよ。 – Naterade

答えて

2

次へ#overlayのdivを設定する必要があります。

#overlay { 
    width: 100%; 
    height: 100%; 
    position:fixed; 
    z-index: 1000; 
    background: rgba(255, 255, 255, 0.7) 
} 

半透明の白い背景のオーバーレイは、体の不透明度を下げるのと同じ効果を持つことになります。あるいは、rgbaではなく1px半透明の.png背景画像を使用することもできます。

#overlay .inner { 
    width: 200px; 
    height: 200px; 
    position: absolute; 
    top: 50%; 
    left: 50%; 
    margin: -100px 0 0 -100px 
} 

あなたが他の要素のCSSを変更することを心配する必要はありませんその方法:

その後、フォームを中心に説明する#overlayの内部に別のdivを使用することができます。あなたがあなたの答えで述べたアプローチについてコメントすることを


それはあなたの現在のコードは、「「ID 『オーバーレイ』を持っているし、クラスを追加していない任意のbody要素を見つけると言っているというのが私の理解ですsuppress '"...つまり、not()は、一致した要素のセットにのみ適用されます。何がしたいことは #overlay以外のすべての要素の不透明度を変更する場合は、次の操作を行うことができます:

<body> 
    <div id="overlay"> 
      overlay stuff in here 
    </div> 

    <div id="other-content"> 
      All page content in here 
    </div> 
</body> 


$(document).ready(function(){ 
    $('#other-content').addClass('suppress'); 
}); 
+0

あなたはそれを釘付けにしました、助けてくれてありがとう! – Naterade

関連する問題