ZeroPlus Gateについて

\ シェア /

FacBook
Twitter
LINE
はてブ
PPocket
ZeroPlus Media > Web制作 > HTML/CSS > CSSで簡単にスムーススクロールを実現!JavaScriptを使った実装との違いは?

CSSで簡単にスムーススクロールを実現!JavaScriptを使った実装との違いは?

HTML/CSS

2022/01/26

2025/01/16

スムーススクロール記事サムネイル

Webサイトにスムーススクロールを適用させると、ページ内リンクで目的の位置までなめらかに遷移する動きを実現できます。

スムーススクロールを作る方法はいくつかあり、JavaScriptを使った方法はやや難易度が高いものの、この記事で紹介するCSSのみで作る方法はシンプルです。しかし、CSSのみで作るスムーススクロールには「できないこと」もあるため、併せて解説します。

かめるん先生
かめるん先生

スムーススクロールは、ページ内リンクがあるときは高確率で実装されるのでここでマスターしていきましょう!

この記事で身につく内容
  • CSSのみでスムーススクロールを実装する方法
  • CSSのみで作るスムーススクロールを実装する場合にできないこと

ZeroPlus Gateについて

プログラミング学習でこのような経験はありませんか?

  1. 目標に向けて何を学べば良いかわからない
  2. 調べても解決策が見つからない
  3. 現場レベルのスキルが身につくのか不安

これらの悩みは、学習環境を整えることで全て解決することができます。

ZeroPlus Gateでは、30日間無料で最適な学習環境を提供しています。

  1. なんでも相談できる専属メンター
  2. いつでも技術相談ができるプロ講師
  3. 元IT企業CTO監修のカリキュラム

条件なしでこのレベルの環境を無料で提供しているのはZeroPlus Gateだけです。
ただし、無料サービスの提供には参加者の数に制限があります。

少しでも興味がある方は、以下のリンクからサービスの詳細をご覧ください。

今すぐZeroPlus Gateの詳細を見る

 

スムーススクロールとはページ内リンクで遷移する際の滑らかな挙動のこと

スムーススクロールを実装すると、ページ内リンクにおいて目的のポイントまで滑らかな挙動で遷移させられます。動画で確認してみましょう。

 

スムーススクロールをCSSで実装する方法を解説

CSSでスムーススクロールを実装する方法は簡単です。htmlタグscroll-behavior: smooth;を指定すれば実装できます。

html {
    scroll-behavior: smooth;
}

これだけでスムーススクロールは実装完了ですが、ひとつ注意点があります。

htmlタグではなくbodyタグscroll-behavior: smooth;を指定してしまうと、スムーススクロールが効きません。CSSでスムーススクロールを指定する場合は、必ずhtmlタグへ指定するようにしましょう。

かめるん先生
かめるん先生

ここは結構陥りがちなミスなので、要注意ですね!!

遷移位置を調整する方法

固定ヘッダー(スクロールしても追従してくるヘッダー)を実装しているサイトでは、以下のようにリンク先の遷移位置を調整する必要性が出てくるかもしれません。以下の動画をご覧ください。

この場合だと固定ヘッダーでセクションタイトル(事例では「about」)が隠れてしまいます。これでは、ユーザーが自分の現在地点を把握しづらいかもしれません。ここで使えるのがscroll-margin-topプロパティです。scroll-margin-topを使えばスクロール時のみに適用される余白を付けられます。

.about {
  scroll-margin-top: 130px;
}

ここではaboutセクションに、ヘッダーの高さ分の130pxを指定しました。このようにタイトルと固定ヘッダーが被らないように調整できます。

ここでは、ヘッダーの高さが130pxの場合を例にしています。実際のヘッダーの高さに応じてscroll-margin-topの値を調整してください。

無料でエンジニア講師に質問し放題!安心して学習できる

ZeroPlus Gateの詳細を見る

受講できる人数は毎日先着制!

 

CSSのみで実装するスムーススクロールではできない2つのこと

CSSでスムーススクロールを実装する方法は非常に簡単ですが、JavaScriptやjQueryを使って実装する方法に比べてできないことが2つあります。

  • ページ単位の指定ができない
  • スクロール速度の調整ができない

詳しく解説していきます。

 

ページ単位の指定ができない

CSSでスムーススクロールを実装する場合、ページ単位の指定ができません。

たとえばトップページの他にサービスページやお問い合わせページなど、下層ページが存在するWebサイトがあるとします。ここでトップページのみスムーススクロールを実装し、サービスページとお問い合わせページにはスムーススクロールを適用しないといった、個別の指定はできません。

 

スクロール速度の調整ができない

CSSで指定するスムーススクロールではスクロール速度の調整ができません。その点、JavaScriptやjQueryではスクロール速度の指定や、スクロール途中の加減速(イージング)も細かく調整できます。

 

まとめ

本記事で紹介したCSSのみでスムーススクロールを実装する方法は、初心者でも簡単に取り組めるシンプルな内容です。ただしJavaScriptやjQueryでスムーススクロールを実装する方法に比べて、本記事で紹介したCSS のみで作る方法は細かな調整ができない面は押さえておきましょう。

CSSのみでスムーススクロールを実装する際にできないことは以下のとおりです。

  • ページ単位の指定ができない
  • スクロール速度の調整ができない

これらの調整を必要としなければ、CSSを使ったスムーススクロールで対応できます。ぜひこの記事を参考にして実践してみましょう!

ZeroPlus Gateについて

プログラミング学習でこのような経験はありませんか?

  1. 目標に向けて何を学べば良いかわからない
  2. 調べても解決策が見つからない
  3. 現場レベルのスキルが身につくのか不安

これらの悩みは、学習環境を整えることで全て解決することができます。

ZeroPlus Gateでは、30日間無料で最適な学習環境を提供しています。

  1. なんでも相談できる専属メンター
  2. いつでも技術相談ができるプロ講師
  3. 元IT企業CTO監修のカリキュラム

条件なしでこのレベルの環境を無料で提供しているのはZeroPlus Gateだけです。
ただし、無料サービスの提供には参加者の数に制限があります。

少しでも興味がある方は、以下のリンクからサービスの詳細をご覧ください。

今すぐZeroPlus Gateの詳細を見る

\ 学んだことをSNSでシェアしよう /

おすすめのタグ

この記事の監修者

かめるん

ZeroPlus講師

【日本一生徒さんが大好きな講師】 プログラミングスクール『ZeroPlus』講師 / 3年間のエンジニアを経て独立2年目 / 話しやすい講師ランキング1位(生徒さん調べ) / 「もう少し頑張ってみようかな」の背中を押す人 / 思わず学習したくなるポジティブを発信 /

この記事の執筆者

ZeroPlus Media変種部

ZeroPlus Media編集部

ZeroPlusは、「フリーランス特化型プログラミングスクール」です。ZeroPlus Mediaでは、フリーランスとして活躍する際に役立つ有益なプログラミングやWeb制作に関する情報を発信しています。

質問について

ZeroPlus Media読者限定で質問対応をおこなっています。以下の2つの方法で質問を受け付けています。

選べる2つの質問方法

1

Google Foam(テキスト)で質問

mail

フォーム送信

メールで解答

formで質問
2

Google meet(オンラインmtg)で質問

meet

日時選択

メールを受け取る

メールからmtgに参加

meetで質問
ZeroPlus Gateについて

あなたの目的に合わせた2つのサービス

あなたの目的に合わせたZeroPlusの2つのサービス
基礎からフリーランスレベルまで本質的な学びを提供しています

完全無料!30日間で学びきれる
プログラミンスクールZeroPlus Gate

  • お金をかけずに、学習を進めたい
  • Webサイトを作れるようになりたい
  • メンターや講師に質問しながら学習したい

詳しくはこちらから

フリーランス特化型
プログラミングスクール ZeroPlus

  • プログラミング学習で悩んでいる
  • 仲間と一緒に学習したい
  • フリーランスとしての総合的な力を養いたい

詳しくはこちらから