ホームページ >ウェブフロントエンド >CSSチュートリアル >ボディスクロールバーを非表示にせずに無効にする方法

ボディスクロールバーを非表示にせずに無効にする方法

Barbara Streisand
Barbara Streisandオリジナル
2024-12-08 17:28:14805ブラウズ

How to Disable Body Scrollbar Without Hiding It?

可視性を維持しながら HTML/本文スクロールバーを無効にする

最適なライトボックス エクスペリエンスを実現するには、親要素のスクロールバーを非表示にせずに一時的に無効にすることができます。それ。これを実現するには、次のアプローチを検討してください:

親要素を修正:

ライトボックスを開くときに、オーバーレイの基礎となるページに次の CSS プロパティを割り当てます:

body {
  position: fixed;
  overflow-y: scroll;
}

これにより、スクロールバーの表示を維持しながら、ページの位置が固定され、垂直スクロールがページ自体に制限されます。

ライトボックスを閉じるときにリセット:

ライトボックスを閉じると、元の CSS プロパティが復元されます:

body {
  position: static;
  overflow-y: auto;
}

既存の処理スクロール:

ページの現在のスクロール位置を保存するには、ライトボックスを開く前に JavaScript を使用してドキュメントのscrollTop 値を取得し、それを body 要素の先頭プロパティとして割り当てます:

.noscroll {
  position: fixed;
  top: var(--st, 0);
  inline-size: 100%;
  overflow-y: scroll;
}
const b = document.body;
b.style.setProperty('--st', -(document.documentElement.scrollTop) + "px");
b.classList.add('noscroll');

以上がボディスクロールバーを非表示にせずに無効にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。