HTML Drag and Drop APIについて

(更新: 2025年12月17日)
  • Web
  • ブラウザ

はじめに

12月1日から25日まで、毎日1記事ずつ公開していくアドベントカレンダー企画です。 この連載では、Web標準とDDDについて学びを深めていきます。 第14回は「HTML Drag and Drop API」がテーマです。 HTML Drag and Drop APIとは何か、どのように実装するのか、実装例を交えて紹介します。

HTML Drag and Drop APIとは

ブラウザでドラッグ&ドロップ機能を利用することが可能です。 ドラッグ&ドロップには3つの異なる用途があります。 「ページ内での要素のドラッグ」「ページからのドラッグ」「ページへのデータのドラッグ」です。HTML Drag and Drop APIはこれらの動作が出来ます。

ドラッグイベント一覧 ドラッグイベントは7つあり、数としては多く感じますが内容としてはシンプルなものです。

イベント発生する条件
dragstartdraggable=trueのアイテムがドラッグ開始された時
dragdraggable=trueのアイテムがドラッグされている時
dragenterその要素に入ってきたdraggable=trueのアイテムがある時
dragleaveその要素から出ていくdraggable=trueのアイテムがある時
dragoverその要素の上をdraggable=trueのアイテムがドラッグされている時
dropその要素がドロップ対象であり、draggable=trueのアイテムがその上にドロップされた時
dragenddraggable=trueのアイテムのドラッグが終了されたとき。

ドラッグ可能/不可能にする 任意の要素をドラッグ可能にするには、draggable属性をtrueに設定します。 @codepen

ドラッグしたアイテムをドロップする @codepen

HTML Drag and Drop APIの実装例

HTML Drag and Drop APIを使ったシンプルなパズルゲームを実装しました。 様々なドラッグイベントを活用して実装したので、ぜひ覗いてみてください。 @codepen

まとめ

今回はHTML Drag and Drop APIについて紹介しました。 ドラッグアンドドロップの実装はライブラリを使うイメージを持っていたのですが、Web APIで可能だったのは驚きです。 Web API単体で出来ることはたくさんあるので、活用できるように理解を深めたい思います。

参考

https://developer.mozilla.org/ja/docs/Web/API/HTML_Drag_and_Drop_API