ホームページ > 記事 > ウェブフロントエンド > 動的サイズの親要素内の要素のスクロール範囲を制限するにはどうすればよいですか?
垂直スクロール要素の CSS 高さ制限の実装
対話型インターフェイスでは、要素のスクロール動作を制御することは、ユーザー エクスペリエンスとユーザー エクスペリエンスを確保するために不可欠です。アクセシビリティ。このようなシナリオの 1 つは、動的にサイズが変更される親要素内の要素のスクロール範囲を制限することです。
問題:
一緒に移動するスクロール可能なマップ DIV があるレイアウトを考えてみましょう。固定サイドバーとの位置合わせを維持しながら、ユーザーの垂直スクロールを実現します。ただし、地図のスクロールが無限に伸びてビューポートの高さを超え、ユーザーがページ フッターにアクセスできなくなります。
解決策:
この問題に対処し、地図のスクロールを制限するには、次のことができます。 CSS と JavaScript のテクニックを活用します。
まず、マップ DIV の CSS 高さ制限を定義します。 「max-height」プロパティ。これにより、マップが到達できる最大の高さが設定され、親要素の高さを超えないようにすることができます。
}<br>$(window).scroll(function() {<br> var scrollVal = $(this).scrollTop();</p> if (scrollVal > $("#sidebar").offset().top) {<p></p> <p>} else {<br><br><br>}</p>});</pre> ;<p></p>このコードでは、スクロール位置とサイドバーのオフセット上部の差を計算し、効果的にスクロール位置を制限します。サイドバーの高さ内でのマップのスクロール範囲。<p><br>代替アプローチ:<br></p> <p>シナリオによっては、代替アプローチが推奨される場合があります。たとえば、マップ要素の高さが固定されており、サイドバーが動的に拡張する場合、計算を簡素化できます。</p> <p><pre class="brush:php;toolbar:false"><strong>$(window).scroll(function() {</strong> varscrollVal = $(this).scrollTop();</p> if (scrollVal > $(".header").height()) {<p></p> <p>} else {<br><br><br>}</p>});この場合、ヘッダーの高さが固定されたままであると仮定して、ヘッダーの高さを基準点として使用します。スクロール位置がヘッダーの高さを超える場合、マップの位置はビューポートの上部に固定されます。このアプローチにより、ビューポートの高さ内に留まりながら、適切なタイミングで地図がスクロールして表示されるようになります。
以上が動的サイズの親要素内の要素のスクロール範囲を制限するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。