縦スクロールカルーセルを作る方法【HTML/CSS/JavaScript・サンプルコード付き】

カルーセル

縦スクロールカルーセルを作る方法

縦スクロールカルーセルを作る方法を紹介します。上下方向へスライドを切り替えられるカルーセルで、お知らせ一覧やニュース、商品紹介、コンテンツ切り替えなどに利用できます。前へ・次へボタンで上下へ移動でき、アニメーション付きでスムーズに切り替わるため、通常の横スクロールとは違ったレイアウトを実現できます。HTML・CSS・JavaScriptだけで実装できるので、そのままコピーして利用できます。

コードについて 本記事のコードはサンプルコードです。ご利用前に必ず動作確認を行ってください。
サンプル画像は付属していません。ご自身で用意した画像へ変更してご利用ください。

デモ

コードをコピーして使おう!

<!DOCTYPE html>
<html lang="ja">
<head>

  <!-- 文字コード -->
  <meta charset="UTF-8">

  <!-- スマホ表示に対応 -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- ページタイトル -->
  <title>縦スクロールカルーセル</title>

  <!-- CSSファイルを読み込み -->
  <link rel="stylesheet" href="style.css">

</head>
<body>

  <!-- 縦スクロールカルーセル全体 -->
  <div class="vertical-carousel_demo">

    <!-- 表示エリア -->
    <div class="vertical-carousel_view">

      <!-- 縦方向に移動するスライド一覧 -->
      <div class="vertical-carousel_track" id="vertical-carousel-track">

        <!-- スライド1 -->
        <div class="vertical-carousel_slide vertical-carousel_slide1">

          <!-- スライド内の文章エリア -->
          <div class="vertical-carousel_content">

            <!-- タイトル -->
            <div class="vertical-carousel_title">スライド 01</div>

            <!-- 説明文 -->
            <p>上下方向へ切り替わる縦スクロールカルーセルです。</p>

            <!-- リンクボタン -->
            <a href="#" class="vertical-carousel_button">詳しく見る</a>

          </div>

        </div>

        <!-- スライド2 -->
        <div class="vertical-carousel_slide vertical-carousel_slide2">

          <!-- スライド内の文章エリア -->
          <div class="vertical-carousel_content">

            <!-- タイトル -->
            <div class="vertical-carousel_title">スライド 02</div>

            <!-- 説明文 -->
            <p>ニュースやお知らせなどにも利用できます。</p>

            <!-- リンクボタン -->
            <a href="#" class="vertical-carousel_button">詳しく見る</a>

          </div>

        </div>

        <!-- スライド3 -->
        <div class="vertical-carousel_slide vertical-carousel_slide3">

          <!-- スライド内の文章エリア -->
          <div class="vertical-carousel_content">

            <!-- タイトル -->
            <div class="vertical-carousel_title">スライド 03</div>

            <!-- 説明文 -->
            <p>HTML・CSS・JavaScriptだけで実装できます。</p>

            <!-- リンクボタン -->
            <a href="#" class="vertical-carousel_button">詳しく見る</a>

          </div>

        </div>

      </div>

      <!-- 上へ移動するボタン -->
      <button class="vertical-carousel_arrow vertical-carousel_prev" type="button" id="vertical-carousel-prev" aria-label="前へ"></button>

      <!-- 下へ移動するボタン -->
      <button class="vertical-carousel_arrow vertical-carousel_next" type="button" id="vertical-carousel-next" aria-label="次へ"></button>

      <!-- ドットナビ -->
      <div class="vertical-carousel_dots">

        <!-- スライド1へ移動 -->
        <button class="vertical-carousel_dot is-active" type="button" data-index="0" aria-label="スライド1"></button>

        <!-- スライド2へ移動 -->
        <button class="vertical-carousel_dot" type="button" data-index="1" aria-label="スライド2"></button>

        <!-- スライド3へ移動 -->
        <button class="vertical-carousel_dot" type="button" data-index="2" aria-label="スライド3"></button>

      </div>

    </div>

  </div>

  <!-- JavaScriptファイルを読み込み -->
  <script src="script.js"></script>

</body>
</html>

ファイル構成と設置方法

このサンプルは、HTML・CSS・JavaScriptを分けた構成です。HTMLで縦スクロールカルーセルのレイアウトを作成し、CSSで背景画像やレイアウト、アニメーションを設定しています。JavaScriptでは上下ボタンとドットナビによるスライド切り替え処理を行います。背景画像は sample/images/ フォルダへ配置して利用してください。

sample
├── index.html
├── style.css
├── script.js
└── images
    ├── image1.jpg
    ├── image2.jpg
    └── image3.jpg

sample/index.html をブラウザで開くと縦スクロールカルーセルを確認できます。使用する画像は sample/images/ フォルダへ配置し、HTMLまたはCSSで指定している画像ファイル名へ変更してください。画像の高さや表示エリアの高さは style.css.vertical-carousel_view.vertical-carousel_slideheight: 520px を変更すると調整できます。スライド速度は style.csstransition: transform .45s ease; を変更すると調整でき、.45s = 0.45秒です。数値を大きくするとゆっくり、小さくすると速く切り替わります。また、スライド移動量は script.jsconst verticalCarouselHeight = 520; と同じ値にしてください。CSSとJavaScriptの数値を一致させることで、正しい位置へスライドします。



カルーセル

コメント