拖放API

设置元素属性 draggable=true 即可让元素能够拖放

拖放源:被拖放的元素

拖放目标:被拖放的元素到达的目标元素

拖放源事件:

  • dragstart:拖放源开始被拖放时触发
  • drag:拖放源被拖放的过程中触发
  • dragend:拖放源在拖放结束时触发

拖放目标事件:

  • dragenter:拖放源进入元素边界时触发
  • dragleave:拖放源离开元素边界时触发
  • dragover:拖放源在元素内部时不断被触发
  • drop:拖放源被释放到元素内部时触发

dataTransfer是拖放事件对象中的一个属性,其中保存了跟拖放相关的信息,它的字符串属性dropEffect,可以设置鼠标在拖放目标中的样式,可设置的值为:

  • copy
  • move
  • link
  • none
<div class="left" data-allowed="true">
            <div id="test" draggable="true" class="color1 item">JavaScript</div>
            <div draggable="true" class="color2 item">Java</div>
            <div draggable="true" class="color3 item">python</div>
            <div draggable="true" class="color4 item">django</div>
            <div draggable="true" class="color5 item">css3</div>
            <div draggable="true" class="color6 item">html5</div>
            <div draggable="true" class="color7 item">Vue</div>
        </div>


 <tr>
                        <td id="tdtest"></td>
                        <th>星期一</th>
                        <th>星期二</th>
                        <th>星期三</th>
                        <th>星期四</th>
                        <th>星期五</th>
                        <th>星期六</th>
                        <th>星期日</th>
                    </tr>
var div = document.getElementById("test");
var tdtest = document.getElementById("tdtest");
// 当拖放开始,触发的事件
div.ondragstart = function () {
    console.log("dragstart");
}
// 过程中
div.ondrag = function () {
    console.log("drag");
}
// 结束后【放手】
div.ondragend = function () {
    console.log("dragend");
}

// 进入边界,就触发该事件
tdtest.ondragenter = function () {
    console.log("drag enter");
}
// 只要在内部,就一直触发
tdtest.ondragover = function (e) {
    //阻止浏览器的默认行为
    e.preventDefault();
    //设置鼠标在拖放目标中的样式
    //可以设置的值:copy 、move、none 、link
    e.dataTransfer.dropEffect = "link";
    console.log("drag over");
}
// 离开边界
tdtest.ondragleave = function () {
    console.log("drag leave");
}
// 只在目标元素上触发【前提:目标元素允许拖拽】
tdtest.ondrop = function () {
    console.log("drop");
}

container.ondragover = function(e){
    e.preventDefault();//阻止默认的拖拽行为
    console.log(e.target);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

outside-R

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值