2012前回とは異なる方法でスクロールを無効化する方法を探ってみました。動きます!デモコードコードはこちら。それぞれコメントで示したURLを参考にさせていただきました。使う時はbody要素のクラスにnoscrollを追加するとスクロールが無効化され、削除すると再びスクロールできるようになります。'noscroll');jQueryを使っているのであればクラスの操作は以下のようにできます。$('body').addClass('noscroll');$('body').removeClass('noscroll');実現方法overflow:hiddenをbody要素に適用してスクロールバーを消し、スクロールさせないようにしています。それだけだとスクロールバーが消えた分描画領域が広がってしまい、一瞬表示が崩れてしまうので、事前にスクロールバーの幅を計算しておき、その分だけbody要素のpadding-rightを設定して縮めることで崩れを防いでいます。問題点スクロールバーを消した分の幅はpaddingで埋めているのですが、これでは誤魔化せない場所もあります。Queriesの条件に使うスクリーンサイズはスクロールバーの有無で変わってしまうので、スタイルが切り替わる境界付近でスクロールを禁止すると、レイアウトが変化して見苦しくなる可能性があります。追記この挙動、仕様ではなくWebKitのバグだったみたいですね。Blinkでは修正されたようです。WebKitも早く修正されるといいですね。