2012-02-16 5 views
1

CSSからモーダルウィンドウを開いたときに本文ページのスクロールを削除することはできますか?
たとえば、私のボディページの高さは200%です。ページの一番下に行きたい場合は、スクロール(overflow-y:auto)を使用する必要があります。今度はモーダルウィンドウを開くと、本文ページのスクロールはアクティブなままで、モーダルウィンドウが開いたときには無効にしておきます。モーダルウィンドウが開いているときに本文ページのスクロールを非表示にする

ありがとうございます。

+1

モーダルウィンドウに 'position:fixed'を使用すると、ユーザーがスクロールしても画面上にそのまま残ります。 – Oliver

+0

はい、私はすでにポジションを持っていることを知っています:モーダルに固定されていますが、ボディページのスクロールを無効にしたいと思います。 – mcmwhfy

答えて

2

あなたは、リンクでは、次の操作を行うことができますクリックしたとき、モーダルウィンドウを開いている場合は、次の

// modal screen activate 
$('a').live('click', function(){ 
modalScreen.show(); 
$('body').css('overflow','hidden'); 
}); 

// modal screen de-activate 
$('body, html').live('click', function(){ 
modalScreen.hide(); 
$('body').css('overflow','auto'); 
}); 
0

私はJavaScriptを使用してlightwindowを開いていると仮定します。

あなただけの100%に体の高さを設定して隠しに溢れ-Y設定できるより。スクロールバーが削除されます。

ライトウインドウの近くですべてをリセットする必要があります。

+0

私はwicketを使用しています。モーダルウィンドウの背面にあるメガネのJavaScriptです。私はそれを変更したくないです。そのため、CSSやjQueryで本文ページのオーバーフローを無効にする方法を見つけようとしています。 – mcmwhfy

+1

jQueryを使用して任意のCSSを設定できます。$( 'body')。css({'height': '100%'、 'overflow-y': 'hidden'});そのような何かがトリック(未テスト)を行う必要があります。 –

0

position:fixedを使用して、lefttopをパーセントで設定し、次にmargin-leftをピクセル単位で負の値に設定します。例えばwidth: 700px; left: 50%, margin-left: -350px;を水平に中央に配置します。

0

またはちょうどあなたのスクリプトにクラスを追加および削除:

$('body').addClass('modal-open'); //when modal is open 
$('body').removeClass('modal-open'); //when modal is closed 

次にあなたが行くことができますあなたのCSSファイルに追加し、複数のCSSスタイルを追加します。スクロールバーの使用を隠すために:あなたはより多くのものを変更したいとき

.modal-open { 
overflow: hidden; 
} 

は、特に私はこの方法を好むが、それは私の意見です。好きなものを使ってください!

関連する問題