draggable属性在大多数目前的浏览器中都可以兼容,是一个十分好用的属性。取值为一个布尔值,true/false,当取值为true的时候,可以用鼠标按钮拖动元素。拖拽操作期间,会有一个可拖拽元素的半透明快照跟随着鼠标指针。
拖拽的周期及相关事件
1. 拖拽开始
ondragstart 拖拽元素开始被拖拽的时候触发的事件,此事件作用在被拖曳元素上
2. 拖拽进行中
ondrag 在dangstart 和 dargend 之间发生的, 此事件作用在被拖曳元素上
ondragenter 拖曳元素进入目标元素的时候触发的事件,此事件作用在目标元素上
ondragover 拖拽元素在目标元素上移动的时候触发的事件,此事件作用在目标元素上
3. 拖拽结束
ondragleave 被拖拽的元素在目标元素上同时鼠标放开触发的事件,此事件作用在目标元素上
ondragend 当拖拽完成后触发的事件,此事件作用在被拖曳元素上 (若要调用 需要在dragover 上加e.preventDfault 因为默认对应的dragleave )
拖拽图像
拖拽过程中,浏览器会在鼠标旁显示一张默认图片。当然,应用程序也可以通过 setDragImage() 方法自定义一张图片:
语法:
ev.dataTransfer.setDragImage(src, 10, 10)
拖拽效果
dropEffect属性,用来控制拖放操作中用户给予的反馈。它会影响到拖拽过程中浏览器显示的鼠标样式。copy move link 三个值可以定义
ev.dataTransfer.dropEffect = "copy"