主要就是几个事件函数及属性
被拖动元素:draggable 属性设置为true
           ondragstart(event)当元素被拖动时发生什么事
例如可以把被拖动元素的id存储事件中 ev.dataTransfer.setData("name","value");value--ev.target.id
 
元素被放置
ondragover(ev) function 这个函数用来阻止浏览器的默认行为ev.preventDefault()
ondrop()元素被放置var id = ev.dataTransfer.getData("name");
ev.target.appendChild(document.getElementById(id))  ev.target是目标事件对象
要是去实现来回的拖动只要在目标对象上都加入ondragover ondrop 句柄就好了

 

<!DOCTYPE HTML>

<html>

<head>

<title></title>

<meta charset="utf-8"/>

<style>

#div1{width:200px; height:200px;border:solid 1px gray;}

#div2{width:200px; height:200px;border:solid 1px gray;}

img{border:solid 1px red;}

</style>

</head>

<div id="div1" ondragover="allowDrag(event)" ondrop="dropImg(event)"></div>

<div id="div2" ondragover="allowDrag(event)" ondrop="dropImg(event)">

<img id="img1" src="22.gif" draggable="true" ondragstart="dragImg(event)"/>

</div>

<script>

function dragImg(ev){

ev.dataTransfer.setData("heh",ev.target.id);

}

function allowDrag(ev){

ev.preventDefault();

}

function dropImg(ev){

ev.preventDefault();

var data = ev.dataTransfer.getData("heh");

//console.log(document.getElementById(data));

ev.target.appendChild(document.getElementById(data));

}

</script>

<body>

</body>