为了账号安全,请及时绑定邮箱和手机立即绑定

为什么拖拽会复位??

为什么拖拽会复位??

倚天杖 2019-04-14 10:33:30
#box1{width:20px;height:20px;background:red;position:absolute;}varbox1=document.getElementById('box1');vardisX=0;vardisY=0;varbtn=false;box1.onmousedown=function(e){disX=e.clientX;disY=e.clientY;btn=true;}document.onmousemove=function(e){if(!btn){return;}varleft=e.clientX-disX;vartop=e.clientY-disY;box1.style.left=left+'px';box1.style.top=top+'px';}document.onmouseup=function(){btn=false;}我写的一个拖拽功能,为什么第二次点的时候会复位?
查看完整描述

2 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

当单击时记录鼠标的初始位置。当移动时,如果在拖拽就更新元素的left与top值。
逻辑是有问题的,正在拖拽的时候left与top的值为什么要减去初始值?这在元素第一次被拖拽时是没有问题的,因为初始的left和top都是0。可如果之后再拖拽的话,left与top又会回到0,因为你总是让当前鼠标的x与y坐标减去开始拖拽时候的x与y坐标。在页面上,自然就是总会回到原处。
修改也很简单,你只要不减去初始的值就行了。
                            
查看完整回答
反对 回复 2019-04-14
  • 2 回答
  • 0 关注
  • 327 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信