スクロールすると、各エリアでピタッと止まる!!CSSだけで実装できる。
スクロールスナップさせるために高さを 100vh にすることで画面領域いっぱいに広げて、フルスクリーンレイアウトとして表示できます。
(例)
.container {
overflow: auto;
scroll-snap-type: y mandatory;
height: 100vh;
}
.area {
scroll-snap-align: start;
height: 100vh;
}
どの軸でスクロールさせるか
scroll-snap-type プロパティーではスクロール位置を調整する軸を決定します。
値を y はたて方向、 x は横方向にスクロールさせ、ピタッと止める位置を調整します。また、both にすれば縦にも横にも調整可能です。
練習ページではスナップスクロールのCSSは設定済みです。
親となる全体の要素にはscroll-snap-typeプロパティで「y mandatory」を指定します。
機能させるにはoverflowプロパティで「scroll」の指定と、必要なコンテンツの高さが必要です。
一度に表示する領域のボックスにはscroll-snap-alignプロパティで「start」を指定します。
必要なコンテンツの高さが必要です。
CSS
.container {
/* スクロールスナップの設定 */
overflow: auto;
scroll-snap-type: y mandatory;
height: 100vh;
}
/* 領域各エリアいっしょに設定*/
.area1,.area2,.area3,.area4 {
padding: 1rem;
/* テキストを画面中央に表示 */
display: flex;
flex-direction: column;
justify-content: center;
/* スクロールスナップの設定 */
scroll-snap-align: start;
height: 100vh;
}
h1のフォントはGoogleフォントを使用しています。
自分の好きなフォントに変更してみよう。
使い方はこちら(WEBフォントを使ってみよう)
各エリアはバックグラウンドカラーを指定しています。
①まずは用意されたph1~ph4.jpg画像を入れてみよう。
②次は画像をダウンロードして入れ替えてみよう。画像サイズ1280pxを選んでください。
Point:background-size: cover;
.area1 {
background-color: #ffe4e1;
background-image: url(img/ph1.jpg);
background-size: cover;
}
.area2 {
background-color: #f6ae54;
background-image: url(img/ph2.jpg);
background-size: cover;
}
.area3 {
background-color: #d9aacd;
background-image: url(img/ph3.jpg);
background-size: cover;
}
.area4 {
background-color: #f5f5f5;
background-image: url(img/ph4.jpg);
background-size: cover;
}