JS的拖拽事件

拖拽原理

实现原理:

改变元素的top值和left值 ;

拖拽的三大事件:

onmousedown 鼠标按下
onmousemove 鼠标移动
onmouseup 鼠标释放

这3个事件写拖拽在PC上是需要嵌套的。

话不多说,送上2种方式的代码,如下:

第一种方法 原理在这里插入图片描述

根据以上原理实现托拽的代码如下:


    obj.onmousedown = function(ev){
   
       let l = ev.pageX; //按下的坐标
       let t = ev.pageY;

        //每次按下的时候去记录元素的初始距离
       let ol = box.offsetLeft;
       let ot = box.offsetTop;

        obj.onmousemove = function(ev){
   
            //移动的坐标(ev.pageX) - 按下的坐标(l)+初始位置
            box.style.left = ol + ev.pageX - l + 'px';
            box.style.top = ot + ev.pageY - t + 'px';
        }
        
        obj.onmouseup = function(){
   
        // 当鼠标抬起的时候,把move清掉;
            box.onmousemove = null;
        }
    }

第二种 方法 原理:
在这里插入图片描述
第二种方法代码

 obj.onmousedown = function(ev){
   
            var ev = ev||event;
 			// 按下的坐标 - 元素的初始位置;
            var disX = ev.clientX - this.offsetLeft;
            var disY = ev.clientY - this.
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值