固定の全幅/高さのdivを表示するときに、背景がスクロールしないようにしたい。
何時間ものテストと研究の後、私はこれを行います:
.navbarは私の全幅/高さdivです
$('.navbar').on('shown.bs.collapse', function (e) {
$('html, body').css('overflow', 'hidden');
})
$('.navbar').on('hide.bs.collapse', function (e) {
$('html, body').css('overflow', 'auto');
})
一部のデバイスで動作しますが、より良い方法はありますか?
ありがとう
編集:iOSで背景のスクロールをブロックしたいのですが、ソリューションが機能するページ全体の上部にある固定divでのみスクロールしますが、それは良いことですか?
ドキュメント本文全体のスクロールを防ぎたい場合は、最新のiOSSafariではコードでこの結果が得られません。これは、Appleが何らかの理由で開発者のためにこのオプションをブロックすることに本当に頑固だからです。しかし、それを行う方法が1つあり、私は何度もテストしました。
var offsetTop = window.scrollTop
body: {position: fixed}
document.body.scrollTo(0, -offsetTop)
その後、リリース時に:
body: {position: <relative|static>}
document.body.scrollTo(0, 0)
これは少し注意が必要ですが、すべてのデバイスでスクロールをブロックすることは100%確実です(Appleがこれをブロックする方法を発見するまで)。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加