ドラッグ・スワイプ対応スライダーを作る方法【HTML/CSS/JavaScript・サンプルコード付き】

スライダー

ドラッグ・スワイプ対応スライダーを作る方法

ドラッグ・スワイプ対応スライダーをHTML・CSS・JavaScriptで作る方法を紹介します。パソコンではマウスドラッグ、スマートフォンでは指でスワイプして画像を切り替えられるため、クリック操作だけではなく直感的に動かせる画像スライダーを作成できます。

このサンプルでは、画像を横並びに配置し、ドラッグやスワイプした距離に応じて前後の画像へ切り替えます。前へ・次へボタンを使わずに操作できるため、スマートフォン向けのギャラリーや商品画像、メインビジュアルなどにも使いやすい構成です。

表示する画像は自由に差し替えられ、スライドの幅や切り替え速度もCSSで調整できます。ライブラリを使わずに実装しているため、ドラッグやスワイプで動くスライダーの基本的な仕組みを学びたい方にもおすすめです。

コードについて 本記事のコードはサンプルコードです。ご利用前に必ず動作確認を行ってください。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。

デモ

このデモでは、画像をマウスでドラッグしたり、スマートフォンでスワイプしたりして切り替えられます。横方向に一定以上動かすと、前後の画像へ移動します。

画像1
画像2
画像3

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

<!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="drag-swipe-slider_demo">

    <!-- ドラッグ・スワイプを受け付ける表示エリア -->
    <div class="drag-swipe-slider_box" id="drag-swipe-slider-box">

      <!-- 横に動くスライド一覧 -->
      <div class="drag-swipe-slider_track" id="drag-swipe-slider-track">

        <!-- スライド1 -->
        <div class="drag-swipe-slider_slide">
          <img src="images/【ここに1枚目の画像ファイル名】" alt="画像1">
        </div>

        <!-- スライド2 -->
        <div class="drag-swipe-slider_slide">
          <img src="images/【ここに2枚目の画像ファイル名】" alt="画像2">
        </div>

        <!-- スライド3 -->
        <div class="drag-swipe-slider_slide">
          <img src="images/【ここに3枚目の画像ファイル名】" alt="画像3">
        </div>

      </div>

    </div>

  </div>

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

</body>
</html>

ファイル構成と設置方法

このサンプルは、HTML・CSS・JavaScriptの3ファイルで構成されています。HTMLでスライダーのレイアウトを作成し、CSSで見た目やドラッグ時の表示を設定し、JavaScriptでマウスドラッグおよびスマートフォンのスワイプ操作による画像切り替えを実装しています。表示する画像は sample/images/ フォルダへ配置して使用します。

sample/
├── index.html
├── style.css
├── script.js
└── images/
    ├── 【ここに1枚目の画像】
    ├── 【ここに2枚目の画像】
    └── 【ここに3枚目の画像】

sampleフォルダをそのまま配置し、ブラウザで sample/index.html を開くと動作を確認できます。使用する画像は sample/images/ フォルダへ配置し、index.html の各 img タグへ画像ファイル名を指定してください。パソコンでは画像をドラッグ、スマートフォンではスワイプすることで画像を切り替えられます。

スライダーの横幅や角丸、背景色などは style.css で変更できます。画像が元の位置へ戻る速度は style.cssscript.js.35s で設定しており、0.35秒で切り替わります。数値を大きくするとゆっくり、小さくすると速くなります。また、script.js の判定値 80 は画像を切り替えるために必要なドラッグ・スワイプ距離(80px)です。数値を小さくすると少し動かすだけで切り替わり、大きくするとより大きくドラッグ・スワイプした場合のみ切り替わります。


コメント