2012-07-04 10 views

答えて

15

これは、あなたがスクロールバーを強制的に定義される唯一のCSSです:コンテンツがウィンドウよりも小さい場合、スクロールバーが無効になりますので、あなたは体のサイズを変更するためにいくつかのスクリプトを使用する必要があります

html{ 
    overflow-y: scroll; 
} 

[?ただ、スクロールがそれを隠していない無効]

$("body").css({ "height" : ($(window).height() - 1) + 'px', "overflow": "hidden" }); 
+0

これは本当にうまく機能します。しかし、身体の高さを定義するためにJSを使用する代わりに、私はcssに行くのがよりクリーンであると感じます。周りを少し遊んで、私は2つのオプションが見つかりました: 適用位置:固定; overflow-y:scrollと一緒にhtmlタグに追加します。 また、bodyタグにoverflow:hiddenを追加したフレームワークを使用している場合(私はこの問題を検索したほとんどの人がoverflow:hiddenのためボディに存在します)、ボディの高さを100vh 。 モーダルが閉じているときにそれらのスタイルを削除することを忘れないでください。 – mizurnix

+0

良いキャッチ。あなたは自分の答えを追加するので、私はそれをupvoteすることができます。 – rcdmk

+0

ありがとうございますが、私の解決策はまだありません:)これは非常に長いページにこれを適用しようとしていますので、ユーザーは最初にスクロールしてからモーダルを開き、すべてのオプションによってスクロールバーがアクティブになります。ユーザはスクロールバーを上に移動し、スクロールバーを非アクティブにします。私はFacebookが何をしているのかを確認して、位置を固定し、コンテンツラッパー(自分の体ではない)にトップ:xxxxxピクセル(既にスクロールした距離に基づいて)を追加します。私が終わったら、それを答えとして加えるかもしれません – mizurnix

-4
overflow-y: scroll; 

:例としてFacebookのシアターモードを参照してください。

+0

**スクロールバーを無効にしません** –

+0

スクロールバーは常に表示されますが、スクロールは無効になりませんか? –

+0

ページに十分なコンテンツがない場合でも、スクロールバーを残しておきたいと思っていました。コンテンツがブラウザの画面よりも大きい場合、どのようにスクロールしたいですか? – Chad

関連する問題