以前イベントとかごにょごにょして全体スクロールを止めるものを書いた。

最近、また必要になって、自分で1から作ってる場合はいいんだけど、他のオープンソースのライブラリ使ってる場合に、インベントのバブリングとか追っかけるのが発狂しそうになるので、手っ取り早く無効にする方法。

sample

モーダルウィンドウ(↑の感じのやつ)表示の時に中のコンテンツのスクロールをすると全体スクロールまでいっちゃうのが嫌。すごく嫌。もう一度言うけど、嫌い。

モーダルウィンドウ表示するイベントの処理内で以下を書く。

//スクロールバーごと消す
$("body").css({overflow: "hidden"});

で、だいたい裏の要素クリックでウィンド閉じるとか閉じるボタンで閉じるっていう動きにするのが普通だと思うので、そのイベントで以下を書く。

//スクロールバーを復活させる
$("body").css({overflow: "inherit"});

モーダルウィンドウ表示させてる場合は、これでだいたいうまくいく。