参照物:拖放的元素 和 目标点
API事件:
ondragstart:开始拖放元素触发的事件 , 对象:拖放的元素
ondrag:拖放过程中触发的事件, 对象:拖放的元素
ondragenter:有拖放的元素进入目标元素时触发的事件, 对象:目标元素
ondragover:有拖放的元素在目标元素内移动触发的事件:对象:目标元素
ondragleave:有拖放的元素离开目标元素触发的事件, 对象:目标元素
ondrop:有拖放的元素在本元素松开的时候触发的事件 对象:目标元素
ondragend:拖放元素结束触发的事件 对象:拖放的元素
/完成一个拖动过程必须有的4个步骤
draggable="true", ondragstart, ondragover ,ondrop
以下有个小实例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
#box ,#box1{
width: 200px;
height: 100px;
border: 1px solid;
margin-top:10px ;
}
</style>
</head> <body>
<img src="http://www.w3school.com.cn/i/eg_dragdrop_w3school.gif" id="mg" draggable="true" ondragstart="drag(event)" />
<div id="box" ondrop="drop(event)" ondragover="allowDrop(event)" ondragenter="enter(event)" ondragleave="leave(event)"></div>
<div id="box1" ondrop="drop(event)" ondragover="allowDrop(event)" ondragenter="enter1(event)" ondragleave="leave1(event)"></div>
</body>
<script type="text/javascript">
function drag(ev) {
ev.dataTransfer.setData("Text", ev.target.id);
}
function allowDrop(e) {
e.preventDefault();
}
function drop(ev) {
// ev.preventDefault();
var data = ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}
function enter(ev) {
var box = document.getElementById('box');
box.style.border = '1px solid red';
}
function enter1(ev) {
var box1 = document.getElementById('box1');
box1.style.border = '1px solid green';
}
function leave(e){
var box = document.getElementById('box');
box.style.border = '1px solid';
}
function leave1(e){
var box1 = document.getElementById('box1');
box1.style.border = '1px solid';
}
</script>
</html>
图片在两个div框框之间可以来回拖拽