忍者CODE

ログイン

6
ピタッと止まるスクロールスナップを実装しよう

PHPの問題

HTML_CSS

Googleでログイン Twitterでログイン
問題
お洒落なサイトなどで実装されているスクロールスナップを実装してみましょう。

画像につきましては https://ninjacode.work/assets/img/kv.png こちらを使用して大丈夫です。

見本を動画を参考に作成してください。
期待する画面
ログインして解答を見る
コードのアイコン

解答ソースコード

            <div>
  <section class="snap-area snap-area--red"></section>
  <section class="snap-area snap-area--blue"></section>
  <section class="snap-area snap-area--yellow"></section>
  <section class="snap-area snap-area--green"></section>
  <section class="snap-area snap-area--pink"></section>
</div>
¥HTML¥
          
            div {
    overflow: auto;
    scroll-snap-type: y mandatory;
    height: 100vh;
  }
  .snap-area {
    position: relative;
    scroll-snap-align: start;
    height: 100vh;
  }
  .snap-area::before {
    content: "";
    display: inline-block;
    width: 375px;
    height: 200px;
    background-size: cover;
    background-repeat: no-repeat;
    background-image: url(https://ninjacode.work/assets/img/kv.png);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
  .snap-area--red {
      background-color: red;
  }
  .snap-area--blue {
      background-color: blue;
  }
  .snap-area--yellow {
      background-color: yellow;
  }
  .snap-area--green {
      background-color: green;
  }
  .snap-area--pink {
      background-color: pink;
  }
¥CSS¥
          
答えのアイコン

解説

スクロールさせる際はまず親要素に対して
overflow: auto; と scroll-snap-type: y mandatory; を付与します。

その際に横にスクロールさせたい場合は、scroll-snap-type: x mandatory; としましょう。
中に入ったリスト要素に対してheight: 100vhを付与し画像を浮かして真ん中にすれば出来上がりです。
1.HTMLの宣言をしてみよう
続きの動画を見たい方は公式LINEから「HTML」と送信すると動画が見れます。
コース一覧のアイコン

有料コース一覧
甲賀KOGA

プログラミングスキルが
一気に上がる!
有料級の解説動画19本
を今なら無料でGETできる!

忍者CODEの公式LINE登録後
LINE内にあるURLよりご覧になれます

  • プログラミング本気で学習してる方
  • もちろん完全無料で且つ手続き不要
  • 将来プログラミングで稼ぎたい方
  • 動画解説で真剣に学びたい方
スキルアップ動画をGET