拖拽原对象

//1:源对象拖动开始时
  elem.ondragstart = function(){
    console.log("drag start拖动开始");
  }
//2:源对象拖动中时
  elem.ondrag = function(){
    console.log("drag拖动中");
  }
//3:源对象拖动结束时
  elem.ondragend = function(){
    console.log("drag end拖动结束");
  }

拖拽到目标对象

//拖拽进入目标对象时
  elem.ondragenter = function(){
    console.log("drag enter进入目标");
  }
//拖拽悬停在目标对象上方时
  elem.ondragover = function(e){
    //必须阻止默认事件行为
    e.preventDefault();//使drop可以触发
    console.log("drag over悬停中");
  }
//拖拽离开目标对象时
  elem.ondragleave = function(){
    console.log("drag leave离开了");
  }
//拖拽到到目标对象上方释放
  elem.ondrop = function(){
    console.log("drop释放");
  }

简单demo:垃圾回收站


<!DOCTYPE html>
<html>
<head>
  <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>拖拽事件demo</title>
  <style>
    body{text-align: center}
  </style>
</head>
<body>
<h1>拖动练习</h1>
<!-- 垃圾桶 -->
<img src="img/0.jpg" id="dustbin" />
<hr/>
<!-- 即将丢到垃圾桶的东西 -->
<div id="box">
  <img src="img/gbg1.png" id="gbg1" />
  <img src="img/gbg2.png" id="gbg2" />
  <img src="img/gbg3.png" id="gbg3" />
</div>
<script type="text/javascript">

  //1、创建变量用于保存“垃圾”的id值
  var gbgId=null;
  //2、获取所有拖动原对象
  var list=document.querySelectorAll("#box img");
  //3、遍历获取“垃圾”为其绑定事件
  for(var i=0;i<list.length;i++){
    var gbg=list[i];
    //拖拽开始时:获取当前“垃圾”的id值并赋值到gbgId里
    gbg.ondragstart=function(){
      planeId=this.id;
    }
    gbg.ondrag=function(){}//拖拽中:无动作
    gbg.ondragend=function(){}//拖拽结束后:无动作
  }
  //4、在拖拽到目标对象事件中(拖拽“垃圾”到“垃圾桶”),获取“垃圾”的id值并且从DOM删除
  dustbin.ondragenter=function(){}//拖拽进入到目标(垃圾桶)时:无动作
  //拖拽悬停在目标上时
  dustbin.ondragover=function(e){
    e.preventDefault();//阻止默认事件行为
  }
  dustbin.ondragleave=function(){}//拖拽离开目标时:无动作
  //拖拽“垃圾”到“垃圾桶”时:
  dustbin.ondrop=function(){
    var img=document.getElementById(gbgId);//获取当前“垃圾”的id
    var box=document.getElementById("box");//获取“垃圾”父级
    box.removeChild(img);//从父级里删除该当前“垃圾”
  }

</script>
</body>
</html>