js原生拖拽上传

2019-8-8    分类: 前端资源

原生拖放中涉及到的事件分为分下列两个阶段:

(1)拖动某元素时,该阶段会依次触发下列事件(该阶段的事件目标--即target或srcElement都是这个被拖动元素):

1. dragstart——鼠标移入目标元素并且按下左键触发。

2. drag——dragstart触发后移动鼠标连续触发该事件(类似mousemove事件)

3. dragend——拖动停止时触发(无论此时拖动元素在有效位置还是无效位置)。

(2)当元素被拖动到一个有效的放置目标上时,触发下列事件(该阶段的事件目标--即target或srcElement都是这个目标元素):

1. dragenter——只要有元素被拖动到放置目标上,就触发dragenter事件(类似mouseover)

2. dragover——触发dragenter后在有效目标范围内移动时连续触发该事件

3. dragleave——被拖动元素从目标范围内被拖出到目标范围外时触发

4. drop——被拖动元素被放到了目标范围内(即在有效目标范围内松口鼠标左键)

当文件被拖拽到浏览器中时,会触发默认事件,打开该文件,导致后续操作无法完成,所以必须要阻止默认事件。

img