使用html5原生拖拽API
DataTransfer 对象:数据传递,Event.dataTransfer
draggable 属性:元素是否可拖拽,draggable=true
ondragstart 事件:被拖曳元素,拖拽开始时
ondragenter 事件:目标元素,进入目标元素时
ondragover 事件:目标元素,拖拽元素在目标元素上移动时,一定要执行preventDefault(),阻止默认的些事件方法等执行
ondrop 事件:目标元素,被拖拽元素在目标元素鼠标放开时
ondragend 事件:被拖曳元,拖拽完成后
从其他应用软件或是文件中拖东西进来,用document的ondragover事件
Event.effectAllowed 属性:拖拽的效果
ev.dataTransfer.effectAllowed = "move";//
"uninitialized":没有该被拖动元素放置行为
"none":被拖动的元素不能有任何行为
"copy":只允许值为"copy"的dropEffect
"link":只允许值为"link"的dropEffect
"move":只允许值为"move"的dropEffect
"copyLink":允许值为"copy"和"link"的dropEffect
"copyMove":允许值为"copy"和"link"的dropEffect
"linkMove":允许职位"link"和"move"的dropEffect
"all":允许任意dropEffect
ev.dataTransfer.dropEffect = "move";//
"none":不能把拖动的元素放在这里。这是除文本框之外所有元素的默认值
"move":应该把拖动的元素移动到放置目标
"copy":应该把拖动的元素复制到放置目标
"link":表示放置目标会打开拖动的元素(但拖动的元素必须是一个链接,有URL)
dataTransfer.items:该属性返回DataTransferItems对象,该对象代表了拖动数据
dataTransfer.setDragImage(element,x,y):设置拖放操作的自定义图标。其中element设置自定义图表,x,y分别为鼠标水平方向和竖直方向的距离
dataTransfer.addElement(element):添加自定义图标
DataTransfer.files包含一组可获取的本地文件列表(拖拽上传功能)
ev.dataTransfer.setData("text", ev.target.innerHTML);//getData、clearData
ev.dataTransfer.setDragImage(ev.target, 0, 0);// 拖拽时跟随鼠标移动显示
eleDrag = ev.target;