JavaScriptとCSSを使用してページの一番下までスムーズにスクロールする方法
JavaScriptとほんの少しのCSSを使用して、ユーザーを長いWebページの一番下までスムーズにスクロールする方法を学びます。
ユーザーがページの一番下までスムーズにスクロールできるようにする場合は、scroll-behavior
というCSSプロパティを使用できます。 scrollIntoView()
と呼ばれるJavaScriptメソッド 。
次のものが必要です:
- ブラウザの右側にあるy軸スクロールバーをアクティブにするのに十分なコンテンツを含む長いWebページ
- ページ上部にあるidのアンカー要素
- idを持つ要素 ページの下部にある
scroll-behavior
CSSプロパティ-
scrollIntoView()
JavaScriptプロパティ
例を挙げて学びましょう!
HTMLレイアウトの例
次のHTMLマークアップの例を使用して学習できます(<p>....</p> dummy elements
を自由に置き換えてください 実際のコンテンツで):
<main>
<p><a id="scroll-to-bottom">Scroll to bottom</a></p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p>....</p>
<p id="page-bottom">You have reached the bottom of this page!!</p>
</main>
アンカー要素が1つあることに注意してください<a>
上部にscroll-to-bottom
のIDがあります 、およびIDがpage-bottom
の下部にある1つの要素 。
CSS
スムーズなスクロールを有効にするには、CSSスタイルシートに以下を追加します。
html {
scroll-behavior: smooth;
}
/* Layout */
main {
max-width: 700px;
margin: 3rem auto;
padding: 0 1rem;
}
#scroll-to-bottom {
font-weight: bold;
color: green;
}
注:スクロールの魔法はscroll-behavior: smooth;
に由来します 、上記のCSSスタイルの残りの部分は純粋に表面的なものです。
JavaScript
ユーザーが下にスクロールをクリックしたときに、ユーザーをページの上から下にスムーズにスクロールするには 次のJavaScriptコードを追加します:
let scrollToBottom = document.querySelector("#scroll-to-bottom")
let pageBottom = document.querySelector("#page-bottom")
scrollToBottom.addEventListener("click", function() {
pageBottom.scrollIntoView()
})
JavaScriptコードの仕組み
- 最初に、
scroll-to-bottom
を参照する2つの変数を宣言します。 およびpage-bottom
それぞれ。 - 次に、イベントリスナーを
scrollToBottom
にアタッチします 変数を指定して、クリックイベントを具体的にリッスンするように依頼します。 -
function() { .. }
の内部scrollIntoView()
を添付します ページ下部の要素へのメソッドpageBottom
。
これで、誰かが下にスクロールをクリックするたびに この関数はscrollIntoView
を実行します メソッドを使用して、ユーザーを一番下までスクロールします。ここで、page-bottom
IDが見つかりました。
注:scroll-behavior: smooth;
を削除した場合 スクロールは技術的には引き続き行われますが、突然発生します。
純粋なバニラJavaScript(CSSプロパティなし)を使用してスムーズなスクロールを作成することもできますが、この例に表示されているものよりもはるかに多くのコードが必要です。
すべてのデモコードを確認してください。
実際の生活で一番下までスクロールするとどのように役立ちますか?
頭に浮かぶユースケースの1つは、訪問者が今すぐ読む時間がない可能性のある長いコンテンツの要約にすばやくスクロールできるようにすることです。
ブラウザの互換性
scroll-behavior
CSSプロパティは、InternetExplorerまたはSafariと互換性がありません。これらのブラウザには、純粋なJavaScriptソリューションが必要です。
-
CSSとJavaScriptを使用してスクロール時に固定/スティッキーヘッダーを作成するにはどうすればよいですか?
CSSとJavaScriptを使用してスクロール時に固定/スティッキーヘッダーを作成するには、コードは次のとおりです- 例 <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1" /> <style> body { font-family: "Segoe UI", Tah
-
CSSとJavaScriptを使用してスクロール時にヘッダーを縮小するにはどうすればよいですか?
CSSとJavaScriptを使用してスクロールのヘッダーを縮小するには、コードは次のとおりです- 例 <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1" /> <style> body { font-family: "Segoe UI", Tahoma, Genev