本篇文章给大家带来的内容是关于html5的drag和drop的用法示例(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
5分钟弄清楚html5的drag and drop,及其他监听事件和执行的次序。
示例如下:

html>
<meta>
<meta>
<meta>
<title>5分钟drag and drop简明示例</title>
<style>
#draggable {
width: 200px;
height: 20px;
text-align: center;
background: white;
}
.dropzone {
width: 200px;
height: 20px;
background: blueviolet;
margin-bottom: 10px;
padding: 10px;
}
</style>
<script>
var dragged;
document.addEventListener("dragstart", function (event) {
console.log('==========dragstart 开始被拖拽==========一次拖动只执行一次');
// 保存拖动元素的引用(ref.)
dragged = event.target;
// 使其半透明
event.target.style.opacity = .5;
}, false);
/* 拖动目标元素时触发drag事件 */
document.addEventListener("drag", function (event) {
// console.log('==========drag==========拖拽时会一直监听,直到放下元素');
}, false);
/* 放置目标元素时触发事件 */
document.addEventListener("dragover", function (event) {
// console.log('==========dragover==========拖拽时会一直监听,直到放下元素');
// 阻止默认动作以启用drop
event.preventDefault();
}, false);
document.addEventListener("dragenter", function (event) {
console.log('==========dragenter 拖曳元素 进入目标元素==========对应着dragleave');
// 当可拖动的元素进入可放置的目标时高亮目标节点
if (event.target.className == "dropzone") {
event.target.style.background = "purple";
}
}, false);
document.addEventListener("dragleave", function (event) {
console.log('==========dragleave 拖曳元素 离开目标元素==========对应着dragenter');
// 当拖动元素离开可放置目标节点,重置其背景
if (event.target.className == "dropzone") {
event.target.style.background = "";
}
}, false);
document.addEventListener("drop", function (event) {
console.log('==========drop 放下元素==========一次拖动只执行一次,在dragenter前触发');
// 阻止默认动作(如打开一些元素的链接)
event.preventDefault();
// 将拖动的元素到所选择的放置目标节点中
if (event.target.className == "dropzone") {
event.target.style.background = "";
dragged.parentNode.removeChild(dragged);
event.target.appendChild(dragged);
}
}, false);
document.addEventListener("dragend", function (event) {
console.log('==========dragend 结束拖拽==========一次拖动只执行一次');
// 重置透明度
event.target.style.opacity = "";
}, false);
</script>
<div>
<div>
这是可以拖拽的DIV
</div>
</div>
<div></div>
<div></div>
<div></div>
【相关推荐:HTML5视频教程】
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











