ページ内ナビ
概要
SortableJSはブラウザ上のlistをドラッグ&ドロップで並べ替えるJavaScriptライブラリです。frameworkやjQueryを必須とせず、同一list内の並べ替え、list間移動、handle、filter、animation、event callbackを設定できます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
既存のDOM listへSortableを作成して並べ替えを有効にする
対象elementへSortable.create()またはnew Sortable()を適用するだけで、list itemをdragして順序変更できます。ul/liに限定されず、任意のelement構成を使えます。
出典:[1]
group設定でlist間の移動・copy・受け入れ条件を制御する
複数listへ同じgroup名を設定するとitemをlist間で移動できます。pull・put・cloneで送出、受け入れ、copyの可否を細かく制御できます。
出典:[1]
handle・filter・eventとpluginで操作感を調整する
drag handle、drag対象外のfilter、animation、direction、onStart・onEndなどのeventを設定できます。AutoScrollに加え、MultiDragやSwap pluginも利用できます。
出典:[1]
向いている用途
優先順位list・Kanban・並べ替え可能な管理画面を実装したい場合に向く
list順序を利用者が直接変更するUIや、複数列間でitemを移動する画面へ、特定frameworkに固定せずdrag-and-dropを追加したい用途に適します。
出典:[1]
導入前の確認
native drag-and-dropとfallbackの挙動を対象browser・touch端末で確認する
SortableJSはnative HTML5 drag and dropを使い、必要に応じてforceFallback等のfallback設定も提供します。mouseとtouchで操作条件が異なるため、実際の対象端末で確認してください。
出典:[1]
framework integrationとTypeScript型定義は周辺packageも確認する
READMEはReact、Vue、Angular等のintegration projectを別途案内し、TypeScript definitionsは@types/sortablejsとして示しています。採用するframeworkと型定義のversion整合も確認が必要です。
出典:[1]
参考にした公式資料
- [1]SortableJS 1.15.7 README(2026-10-05)
- [2]SortableJS 1.15.7 package metadata(2026-10-05)
- [3]SortableJS 1.15.7 release(2026-10-05)
- [4]SortableJS MIT license(2026-10-05)
編集部からの補足
frameworkなしでもDOM listへ直接導入でき、同一list内だけでなくlist間移動まで一つの設定体系で扱えるのが強みです。TypeScript型定義は本体packageではなく@types/sortablejsとして案内されているため、TypeScript projectでは合わせて確認してください。
3ステップで試す
- 1
SortableJS 1.15.7を一時ディレクトリへ導入する
安定版を固定し、既存アプリから分離してdrag-and-dropを確認します。
demo=$(mktemp -d "${TMPDIR:-/tmp}/sortablejs.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm install --save-exact sortablejs@1.15.7 - 2
並べ替え可能なlistを持つ最小HTMLを作る
READMEの基本例にanimation設定だけを加え、3件のlist itemをdragできる状態にします。
printf "%s\n" '<!doctype html>' '<meta charset="utf-8">' '<ul id="items"><li>Item 1</li><li>Item 2</li><li>Item 3</li></ul>' '<script src="./node_modules/sortablejs/Sortable.min.js"></script>' '<script>Sortable.create(document.getElementById("items"), { animation: 150 });</script>' > index.html - 3
browserでHTMLを開いて順序を入れ替える
index.htmlをbrowserで開き、Item 1〜3をdragして順序を変更できることを確認します。index.html
成長
成長の推移 · 直近30日
31,186 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 0
- Open PR
- 41
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
カテゴリ
GitHubデータ
GitHubのデータGitHubの詳細データを見る
GitHub Topics
- drag
- sortable
- reordering
- sort
- drag-and-drop
- drag-drop
- ui
- draggable
- droppable
- touch
- Stars
- 31,186
- Forks
- 3,715
- Watchers
- 402
- Open Issues
- 486
- Contributors
- 140
- 所有者種別
- Organization
- 主要言語
- JavaScript
- ライセンス
- MIT
- リポジトリ最終更新
- 2026/03/24
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Nano ID27,076 Stars
共通タグ 3件 · 同じ言語
暗号学的乱数からURL-safeな短いIDを生成し、文字集合と長さも用途に合わせて調整する
JavaScript - Select225,907 Stars
共通タグ 3件 · 同じ言語
native selectをsearch・multi-select・AJAX・tagging対応のrich selectorへ拡張する
JavaScript - SweetAlert218,098 Stars
共通タグ 4件 · 共通カテゴリ 1件 · 同じ言語
alert・confirm・promptをWAI-ARIA対応のpopupへ置き換え、Promiseで結果を受け取る
JavaScript - Tippy.js12,240 Stars
共通タグ 4件 · 共通カテゴリ 1件 · 同じ言語
tooltip・popover・dropdownをPopperベースで配置し、hover・focus・click操作へ追加する
JavaScript - Bootstrap174,991 Stars
共通タグ 4件 · 共通カテゴリ 1件
responsive grid・utility・componentをCSS/Sassとnative JavaScriptから組み立てるfrontend framework
MDX - Alpine.js31,960 Stars
共通タグ 4件 · 共通カテゴリ 1件
HTML属性にstate・event・表示制御を記述し、小さなinteractive UIを構築する
HTML
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。