ドラッグ&ドロップでカードを並び替える方法【HTML/CSS/JavaScript・サンプルコード付き】 

カードUI

ドラッグ&ドロップでカードを並び替える方法

ドラッグ&ドロップでカードを並び替える方法を紹介します。カードをマウスでドラッグし、そのまま好きな位置へ移動するだけで並び順を変更できるサンプルです。タスク管理、商品一覧、画像ギャラリー、ダッシュボードなど、カードの順番を自由に変更したい場面で利用できます。

このサンプルでは、HTMLでカード一覧を作成し、CSSでカードのデザインやドラッグ中の見た目を設定しています。JavaScriptではSortableJSを使用してドラッグ&ドロップによる並び替えを実装しており、カードを移動すると周囲のカードも滑らかに移動するため、自然な操作感を実現できます。

カードのタイトルや内容、色、サイズ、枚数は自由に変更できます。また、並び替え後の順番を保存する処理を追加すれば、タスク管理や管理画面など実用的な機能としても利用できます。

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

デモ

1
青カード

ドラッグして移動

2
緑カード

ドラッグして移動

3
オレンジカード

ドラッグして移動

4
紫カード

ドラッグして移動

5
赤カード

ドラッグして移動

6
水色カード

ドラッグして移動

このデモではカードをドラッグすると、ほかのカードが滑らかに移動しながら並び順を変更できます。

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

<!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-sort-card_demo">

    <!-- 並び替えできるカード一覧 -->
    <div class="drag-sort-card_list" id="drag-sort-card-list">

      <div class="drag-sort-card_item" style="background:#2563eb;">
        <span>1</span>
        <div>
          <h3>青カード</h3>
          <p>ドラッグして移動</p>
        </div>
      </div>

      <div class="drag-sort-card_item" style="background:#16a34a;">
        <span>2</span>
        <div>
          <h3>緑カード</h3>
          <p>ドラッグして移動</p>
        </div>
      </div>

      <div class="drag-sort-card_item" style="background:#f97316;">
        <span>3</span>
        <div>
          <h3>オレンジカード</h3>
          <p>ドラッグして移動</p>
        </div>
      </div>

      <div class="drag-sort-card_item" style="background:#9333ea;">
        <span>4</span>
        <div>
          <h3>紫カード</h3>
          <p>ドラッグして移動</p>
        </div>
      </div>

      <div class="drag-sort-card_item" style="background:#ef4444;">
        <span>5</span>
        <div>
          <h3>赤カード</h3>
          <p>ドラッグして移動</p>
        </div>
      </div>

      <div class="drag-sort-card_item" style="background:#0891b2;">
        <span>6</span>
        <div>
          <h3>水色カード</h3>
          <p>ドラッグして移動</p>
        </div>
      </div>

    </div>

  </div>

  <!-- SortableJSを読み込み -->
  <script src="https://cdn.jsdelivr.net/npm/sortablejs@1.15.6/Sortable.min.js"></script>

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

</body>
</html>

ファイル構成と設置方法

このサンプルはHTML・CSS・JavaScriptの3つのファイルで構成されています。HTMLでは並び替え対象のカード一覧を作成し、CSSではカードのデザインやドラッグ中の見た目を設定しています。JavaScriptではSortableJSを使用してドラッグ&ドロップによるカードの並び替えを実装しています。

sample/
├── index.html
├── style.css
└── script.js
  

sampleフォルダ内に各ファイルを配置し、ブラウザでsample/index.htmlを開くと動作を確認できます。カードのタイトルや内容、色はindex.htmlから変更でき、デザインやレイアウトはstyle.cssで調整できます。また、script.jsではドラッグ時のアニメーション時間や動き方を設定しているため、animationやeasingの値を変更することで好みの操作感へカスタマイズできます。なお、このサンプルではSortableJSを利用しているため、利用時はライブラリの読み込みも必要です。


コメント