dragstart&dragover&drop 拖放图片到区域

知识点:

  • dragstart事件:当用户开始拖动一个元素或者一个选择文本的时候 dragstart 事件就会触发。
  • dragover事件: 当元素或者选择的文本被拖拽到一个有效的放置目标上时,触发 dragover 事件(每几百毫秒触发一次);这个事件在可被放置元素的节点上触发。
  • drop 事件:当一个元素或是选中的文字被拖拽释放到一个有效的释放目标位置时,drop 事件被抛出。
<!-- 拖放图片到区域 -->
<img src="./img/flower.jpg" width="159" height="150" alt="" id="img0">
<div id="div0"></div>
<div id="div1"></div>
<script>
    var img=document.querySelector("img");
    var div0=document.querySelector("#div0");
    var div1=document.querySelector("#div1");
    img.draggable=true;//可抓取,为false则不可抓取

    img.addEventListener("dragstart",dragHandler);
    function dragHandler(e){
        // console.log(e);
        if(e.type==="dragstart"){
            // e.dataTransfer.setDragImage(img,0,0);
            e.dataTransfer.setData("Text",this.id);
            div0.addEventListener("dragover",dragHandler);
            div1.addEventListener("dragover",dragHandler);
            div0.addEventListener("drop",dragHandler);
            div1.addEventListener("drop",dragHandler);
            // 鼠标下面有图片logo  ,新建一个小图片
			// var imgele=new Image();
   			// imgele.src="./img/1.png";
   			// e.dataTransfer.setDragImage(imgele,10,10);//拖动的时候有图标显示

        }else if(e.type==="dragover"){
            // console.log(e);
            e.preventDefault();
        }else if(e.type==="drop"){
            this.appendChild(document.getElementById(e.dataTransfer.getData("Text")));
        }
    }
</script>

在这里插入图片描述


看了一些给我帮助的博客:
关于HTML实现拖放时出现禁止图标的解决方案
深入理解javascript原生拖放
Disable dragging an image from an HTML page
HTML5 拖放(Drag 和 Drop)详解与实例

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值