11-拖拽事件对象

nobility 发布于 2022-11-10 04-事件 1525 次阅读


拖拽事件对象

触发触摸事件对象的事件

需要将元素的draggable属性设置为true

事件名 描述
drag 拖拽元素:拖拽过程中,连序触发
dragstart 拖拽元素:拖拽开始
dragend 拖拽元素:拖拽结束
dragleave 拖拽元素离开目标元素
dragenter 目标元素:拖拽元素进入时
dragover 目标元素:拖拽元素停留在目标元素上,需要在此事件上取消默认事件,否则默认会归位
drop 目标元素:拖拽元素在目标元素上松开鼠标时

DragEvent接口

DragEvent接口继承MouseEvent接口

构造方法

  • 通常使用事件的构造函数是用来做EventTarget.dispatchEvent(event)方法的参数来手动触发事件的
  • 该构造函数接收两个参数,第一个参数是字符串形式的事件名称,第二个参数是一个可省略的配置对象,配置如下:这些配置也是实例对象的属性
配置项 描述
dataTransfer DataTransfer实例对象,可以为null但是不能为其他值

DataTransfer接口

构造方法

  • DataTransfer实例对象作为DragEvent对象中的dataTransfer属性
  • 该构造方法不接受任何参数

实例属性

属性名 描述
DataTransfer.dropEffect 拖拽时鼠标效果,需要在dragover事件中使用;copy=复制、move=移动、link=连接、none=禁止放下
DataTransfer.effectAllowed 限制dropEffect的操作,需要在dragstart事件中使用;除拉dropEffect中的字符串之外,还有copyLink=允许复制或连接操作、copyMove=允许复制或移动操作、linkMove=允许连接或移动、all=允许所有
DataTransfer.files 拖拽本地文件到网页时的文件列表,需要将dragoverdrop默认行为取消掉,在drop事件中对该属性进行操作
DataTransfer.types 拖拽元素的类型,在drop事件中对该属性进行判断
DataTransfer.items 包含本次所有的拖拽对象,在drop事件中使用,该对象是DataTransferItemList集合实例,该集合中存放DataTransferItem元素
DataTransferItemList接口
方法或属性名 描述
length 成员数量
add(data,type) 添加通过指定内容和类型的字符串,类型是MIME值,比如text/html
add(file) 添加一个文件对象
remove(index) 删除指定位置的成员
clear() 清空集合
DataTransferItem接口
方法或属性名 描述
kind 成员的种类,stringfile
type 字符串的类型MIME
getAsFile() 若是文件则返回该文件,否则返回null
getAsString(callback) 若是字符串则使用异步回调函数处理该字符串,回调函数中的第一个参数是该字符串

实例方法

方法名 描述
DataTransfer.setData(type,data) 用于在dragstart事件中像后续事件传递信息,typeMIME值的数据类型,data是具体数据
DataTransfer.getData(type) 获取指定类型的设置数据
DataTransfer.clearData() 清空设置的数据
DataTransfer.setDragImage(imgNode,x,y) dragstart事件中使用,将拖拽元素拖拽时替换为这个图片元素;x和y是相对鼠标的位置;只能是img节点元素,否则无效果
加油啊!即便没有转生到异世界,也要拿出真本事!!!\(`Δ’)/
最后更新于 2022-11-10