通过css,js实现盒子可拖拽

关于div盒子或者其他的布局可以拖拽,我们需要用到一个属性:draggable

draggabletrue时,盒子就可以实现拖拽的样式效果,

这里我们只需要再用js控制盒子的拿起和放下就可以了

布局是这样的

 <div class="from">
        <div class="move" draggable="true" >我可以移动</div>
        <div class="mm" draggable="true" >我也可以移动</div>
    </div>

    <hr>
    
    <div class="to"></div>

这里有一个小细节,当我们把一个盒子拿出来放到另一个盒子的时候,这个盒子默认是不接受小盒子的,所以我们还要给目标盒子禁止默认事件,由于要回收站不仅要回收进去,还可以拿出来,所以这里给两个盒子都要加上禁止默认事件


 to.ondragover = function(target) {
        //禁用默认事件
        target.preventDefault();
 }

然后通过drop去控制拿起和放下就可以了

下面给出js代码,样式就自己写了


<script>
    var from = document.querySelector(".from");
    var to = document.querySelector(".to");
    var move = document.querySelector(".move");
    var mm = document.querySelector(".mm");
   



    to.ondragover = function (target) {
        //禁用默认事件
        target.preventDefault();
    }

    //drop: 放下, 松手
    to.ondrop = function () {
        
        to.appendChild(mm);
    }



    from.ondragover = function (target) {
        //禁用默认事件
        target.preventDefault();
    }

    //drop: 放下, 松手
    from.ondrop = function () {
        from.appendChild(mm);
        
    }

</script>

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值