HTML5 拖拽


<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title></title>
  <style>
    body {
      text-align: center;
    }
    #trash {
      opacity: .2;
      margin: 15px;
    }
  </style>
</head>
<body>
  <h3>拖动飞机到垃圾桶后从DOM树中删除子元素</h3>
  <img id="trash" src="img/trash_full.png">
  <hr/>
  <img id="p3" class="src" src="img/p3.png">
  <img id="p4" class="src" src="img/p4.png">
  <img id="p5" class="src" src="img/p5.png">
 
  <script>
 
    //为源对象添加事件监听 —— 记录拖动了哪一个源对象
    var srcList = document.querySelectorAll('.src');//找到全部img元素
    for(var i=0; i<srcList.length; i++){ //遍历img元素
      var p = srcList[i];
      p.ondragstart = function(e){ //开始拖动源对象
        e.dataTransfer.setData('PlaneID',this.id);//保存数据--该img元素的id
      }
      p.ondrag = function(){}
      p.ondragend = function(){}
    }
 
    //为目标对象添加事件监听 —— 删除拖动的源对象
    trash.ondragenter = function(){ //源对象进入目标对象
      console.log('drag enter');
      trash.style.opacity = "1"; //将透明度变成1
    }
    trash.οndragleave= function(){  //源对象离开目标对象后
      console.log('drag leave');
      trash.style.opacity = ".2"; //将透明度变为0.2
    }
    trash.οndragοver= function(e){  //源对象在悬停在目标对象上时
      e.preventDefault();  //阻止默认行为,使得drop可以触发
    }
    trash.οndrοp= function(e){ //源对象松手释放在了目标对象中
      console.log('drop');
      trash.style.opacity = ".2"; //将透明度变为0.2
      //删除被拖动的源对象
      var id = e.dataTransfer.getData('PlaneID');//得到数据--id值
      var p = document.getElementById(id); //根据id值找到相关的元素
      p.parentNode.removeChild(p);  //从父元素中删除子节点
    }
 
 
  </script>
</body>
</html>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值