今回はスクロールスナップの実装についてまとめておきます。
こんな人におすすめ
表示領域へピタッととめたい
CSSのみでスクロールスナップを実装したい
表示領域へピタッととめたい
CSSのみでスクロールスナップを実装したい
目次
スクロールスナップとは
ページをスクロールしているときに、見せたいエリアを表示させる方法です。
実装されているサイト
このLPは、私が作成した簡易LPです。

ex cafe のサイト
口当たりのいい飲み物と素材にこだわった食べ物のカフェ
このブログ内でもスクリーンショットを公開しています。

【コーディング】Cafeサイト
cafeサイトのコーディングを行いました。
LP
SP
URL
ポイント
スクロールの停止位置を「スクロールスナップ」で指定
実装
実際にスクロールスナップを実装していきましょう。
今回は下記のようなものを作成します。
試しにスクロールしてみてください。
See the Pen
scroll-snap by そんそん@プログラミング勉強中 (@sonsonfinal)
on CodePen.
HTML
<div class="container">
<section class="section-1">
<h1>1</h1>
</section>
<section class="section-2">
<h2>2</h2>
</section>
<section class="section-3">
<h2>3</h2>
</section>
</div>
CSS
.container {
overflow: auto;
scroll-snap-type: y mandatory; /* ① */
height: 100vh;
}
section {
height: 100vh; /* ② */
scroll-snap-align: start; /* ③ */
font-size: 10rem;
text-align: center;
}
.section-1 {
background: pink;
}
.section-2 {
background: red;
}
.section-3 {
background: skyblue;
}
スクロールする軸の指定 ①に関して
親要素に指定する「scroll-snap-type」でスクロール位置を調整する軸の指定を行います。
値を「y」にすれば縦方向にスクロールさせたいエリアで止まります。
「mandatory」も追加することで、現在表示しているエリアか、次のエリアか、どちらか一方のみが表示されます。
高さの指定 ②に関して
高さを「100vh」にすることで、画面いっぱいに広げる指定を行います。
親要素のどの位置で停止させるか ③に関して
値を「start」とすることで、エリアの開始位置でスクロールを停止します。
上記の指定を行うことで、表示領域へピタッととめるスクロールスナップを実装できます。
まとめ
CSSのみでスクロールスナップを実装する際は下記を指定する。
- スクロールさせる軸
- 高さの指定
- どの位置で停止させるか
以上、参考になれば幸いです。
ご覧いただき、ありがとうございました。
コメント
[…] 【CSSのみ】表示領域へピタッと移動する方法!スクロールスナップの実装CSSのみでスクロールスナップを実装する方法を記載しています。コードもすべて公開しているので、コピー&ペ […]