Back:[[010.鼠标事件#鼠标拖放|使用鼠标事件来实现拖放]]

常见业务场景

拖放流程

用户通过鼠标选中一个可拖动的(draggable)元素,移动鼠标到一个可放置的(droppable)元素,然后释放鼠标

即:选中 -> 拖放 -> 释放

可拖动元素

attribute:

<element draggable="true | false | auto"></element>

这个 attribute 是枚举类型,而不是布尔类型。这意味着必须显式指定值为字符串,像 <img draggable> 这样的简写是不允许的

property:

elem.draggable: boolean

注意:只有 draggable(是否可拖动),没有 droppable(是否可被当成拖动目标)

拖放事件

被拖动的元素(draggable):

目的地元素(droppable):

DataTransfer 对象

![[Pasted image 20240430144834.png]]

DragEvent 派生于 MouseEvent,并增加了 dataTransfer 属性。该属性用于保存拖放的数据和交互信息,返回 DataTransfer 对象: