正直なところ、これは主にCSSです。
このフィドルを見てください:http://jsfiddle.net/ktd29/11/
私は、Facebook のやり方を真似て、世界で最悪のライトボックスを作成しました。赤い四角は画像を表し、黒い四角は半透明のオーバーレイを表します。
スクロールバーが無効になるリンクをクリックするまで、本体がスクロール可能であることがわかります。
div
半透明のオーバーレイは、幅と高さが 100%の絶対配置です。
div {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
background: rgba(0,0,0,0.7);
overflow-y: scroll;
display: none;
}
この div に関する最後の注意事項は、overflow-y
実際scroll
にスクロール可能かどうかに関係なく、スクロールバーが常に存在することを意味します。
ドキュメントの高さは非常に大きく設定されているため、ライトボックスを見ていなくてもページをスクロールできます。ライトボックスを呼び出すコードは次のとおりです。
jQuery(document).ready(function($) {
$('a').click(function(){
$('div').addClass('shown');
$('html').addClass('noScroll');
});
});
これはあなたが期待するものです。この例では文字通りだけですが、HTMLに適用されているdisplay: block;
クラスに注意してください。これは、元のスクロールバーを削除する html にnoScroll
適用されます。overflow-y: hidden;
これにより、2 つのスクロールバー (html 用とオーバーレイ div 用) がなくなります。
何か明確にする必要がある場合はお知らせください。
</p>