html 拖拽事件详细

一、拖拽事件

drag:
触发时机:当用户正在拖动一个元素时,会周期性地触发此事件。
用途:通常用于更新拖动状态或提供视觉反馈。
dragstart:
触发时机:当用户开始拖动一个元素时触发。
用途:设置被拖动的数据和类型,通常在这个事件中调用 setData() 方法。
dragenter:
触发时机:当被拖动的元素首次进入一个可放置的目标元素时触发。
用途:通常用于高亮显示目标区域,提示用户可以在这里放置。
dragover:
触发时机:当被拖动的元素在目标元素上方移动时触发,这个事件会不断触发。
用途:必须在此事件中调用 event.preventDefault() 以允许放置操作;可以设置放置效果(如 copy、move 或 link)。
dragleave:
触发时机:当被拖动的元素离开一个可放置的目标元素时触发。
用途:通常用于恢复目标区域的默认样式。
drop:
触发时机:当用户在目标元素上释放被拖动的元素时触发。
用途:处理实际的放置操作,比如读取拖入的文件、更新DOM结构等。
dragend:
触发时机:当拖动操作结束时触发,无论是在目标元素上放置还是取消拖动。
用途:清理拖动状态,例如移除视觉反馈或重置样式。

二、数据传输对象 (DataTransfer)

DataTransfer 对象是拖放操作的核心,它包含了关于拖动操作的信息,包括拖动的数据类型和实际数据。你可以通过 event.dataTransfer 访问这个对象。
setData(format, data):
设置拖动的数据和格式。format 是数据的 MIME 类型(如 text/plain),data 是要拖动的实际数据。
getData(format):
获取指定格式的拖动数据。如果未找到匹配的数据,则返回空字符串。
clearData([format]):
清除指定格式的拖动数据。如果不指定格式,则清除所有数据。
files:
一个 FileList 对象,包含用户拖入的所有文件。
items:
一个 DataTransferItemList 对象,包含拖动的数据项。每个项都有 kind(string 或 file)和 type 属性。
types:
一个数组,包含所有可用的数据格式。
dropEffect:
设置或获取当前的放置效果。可能的值有 none、copy、move 和 link。
effectAllowed:
设置或获取允许的放置效果。可能的值有 none、copy、copyLink、copyMove、link、linkMove、all 和 uninitialized。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值