HTML 5ドラッグ&ドロップDragとdropの使い方とイベント紹介
2141 ワード
要素をドラッグ&ドロップ可能に設定
まず、要素をドラッグ可能にするにはdraggableプロパティをtrueに設定します.
ドラッグイベント
名前
さぎょう
dragstart
ドラッグ時にトリガー
dragend
ドラッグ完了時にトリガー
dragenter
ターゲット要素にdragenterイベントをバインドし、要素をドラッグしてターゲット要素に入るとトリガーされます.
dragover
ターゲット要素にdragoverイベントをバインドし、ターゲット要素をドラッグして移動するとトリガーされます.
drop
ターゲット要素にdropイベントをバインドし、現在のターゲット要素のdragoverのデフォルトイベントをキャンセルし、ターゲット要素をドラッグ&ドロップしながらイベントをトリガーする.
現在のドラッグ要素の情報を取得するには、DragEventイベントオブジェクトを使用することができます.このオブジェクトには、2つの重要なプロパティがあります.
ドラッグ&ドロップでファイルをアップロードする
まず、要素をドラッグ可能にするにはdraggableプロパティをtrueに設定します.
<img draggable="true">
ドラッグイベント
名前
さぎょう
dragstart
ドラッグ時にトリガー
dragend
ドラッグ完了時にトリガー
dragenter
ターゲット要素にdragenterイベントをバインドし、要素をドラッグしてターゲット要素に入るとトリガーされます.
dragover
ターゲット要素にdragoverイベントをバインドし、ターゲット要素をドラッグして移動するとトリガーされます.
drop
ターゲット要素にdropイベントをバインドし、現在のターゲット要素のdragoverのデフォルトイベントをキャンセルし、ターゲット要素をドラッグ&ドロップしながらイベントをトリガーする.
: box .
box.addEventListener('dragover', function(e){console.log('dragover'); e.preventDefault();});
box.addEventListener('drop', function(e){console.log('drop');});
dropとdragendが同時にバインドされている場合dropイベントが先にトリガーされます現在のドラッグ要素の情報を取得するには、DragEventイベントオブジェクトを使用することができます.このオブジェクトには、2つの重要なプロパティがあります.
e.dataTransfer.setData("data",e.target.id);
//target ( ), 、 。
e.dataTransfer.getData("data")
// .
ドラッグ&ドロップでファイルをアップロードする
ele.addEventListener('dragover', function (e) {
e.preventDefault();
}, false);
ele.addEventListener('drop', function (e) {
// preventDefault() (drop )
e.preventDefault();
console.log(e)
var dt = e.dataTransfer;
var files = dt.files;
console.log(files);
}, false)