实现元素拖拽的步骤
1 把元素的draggable属性设置为true draggable=“true”
2 拖放开始ondragstart触发dragstart事件
3 当拖放到其它元素上ondragover会触发dragover事件
4 放置元素时ondrop会触发drop事件
拖拽过程中的其它事件:
参考文档:
https://developer.mozilla.org/en-US/docs/Web/API/Document/drag_event dataTransfer.dropEffect
event.dataTransfer.effectAllowed = “all”; //用来规定dropEffect允许的值
该属性用来设置用户视觉上的效果,有四种可选值
在dragover的监听函数中设置该属性:
拖拽上传的实现原理
原理:拖拽文件到浏览器里,在drop事件中可以通过event.dataTransfer.files获取被拖拽的文件信息,从而进行上传处理。
如果是file类型的input元素,可以通过监听input元素的change事件,通过input对象的files属性,获取文件信息,从而进行上传处理。
demo地址:https://gitee.com/wutongshenyuan/drag-upload-demo.git
ctrl + v上传原理
原理:监听键盘按键,如果是ctrl+v则可从paste事件中读取文件,从而进行上传
demo地址:https://gitee.com/wutongshenyuan/drag-upload-demo.git