美文网首页
js实现元素拖拽

js实现元素拖拽

作者: JeseeLuo | 来源:发表于2017-03-16 09:38 被阅读0次

被移动元素必须为绝对定位

position:absolute;

Dom

  <div class = "move-container" >
      <div class = "move" style="position:absolute; width:100px; height:100px; background:gray">
      </div>
  </div> 

Javasrtipt

var moveElem = document.querySelector('.move'); //待拖拽元素      
var moveElemParent = moveElem.parentNode; //待拖拽元素的父元素

var dragging; //是否激活拖拽状态
var tLeft, tTop; //鼠标按下时相对于选中元素的位移

//监听鼠标按下事件
document.addEventListener('mousedown', function(e) {
    if (e.target == moveElem) 
        dragging = true; //激活拖拽状态
       var moveElemRect = moveElem.getBoundingClientRect();
        tLeft = e.clientX - moveElemRect.left; //鼠标按下时和选中元素的坐标偏移:x坐标
        tTop = e.clientY - moveElemRect.top; //鼠标按下时和选中元素的坐标偏移:y坐标
    }
});

//监听鼠标放开事件
document.addEventListener('mouseup', function(e) {
    dragging = false;
});

//监听鼠标移动事件
document.addEventListener('mousemove', function(e) {
    if (dragging) {
        var moveX = e.clientX - tLeft, 
              moveY = e.clientY - tTop;

        moveElem.style.left = moveX + 'px';
        moveElem.style.top = moveY + 'px';
      
    }
});

相关文章

  • js拖拽html元素工具类

    复制就能用的拖拽js方法 原生js实现拖拽元素方法 使用(注意拖拽目标元素需绝对定位 position: 'abs...

  • js实现元素拖拽

    被移动元素必须为绝对定位 Dom Javasrtipt

  • HTML5拖拽drag

    通过拖拽实现页面元素的位置改变 实现拖拽效果 源元素 - 要拖拽的文件 目标元素 - 要拖拽到哪里去 目前实现拖拽...

  • js实现拖拽

    js实现拖拽 实现方式 mousedown、mousemove和mouseup 拖着目标元素在页面任意位置如果要设...

  • 拖拽元素JS实现方法

    思路: onmousedown :鼠标按下的时候,记录鼠标所在的位置pageX,pageY记录鼠标相对于盒子的位置...

  • 拖拽API

    实现拖拽效果 目前实现拖拽效果 HTML5拖拽 源元素事件例子 目标元素事件 从本地拖放图片到页面中 实现拖拽

  • HTML5实现拖拽

    实现拖拽效果源元素 - 要拖拽的文件目标元素 - 要拖拽到哪里去 目前实现拖拽效果使用原生DOM就能实现 - 最麻...

  • 原生js实现拖拽(碰撞检测)

    js实现拖拽

  • 原生js实现元素的拖拽

    demo地址 要点1:css 必须设置position要点2:鼠标事件的应用要点3:鼠标弹起,事件清空

  • JS+Vue实现元素拖拽

    背景 工作中遇到这样的一个需求:将页面侧边菜单拖拽到页面中间的画布中,然后在画布内可对此菜单进行随意移动。操作如下...

网友评论

      本文标题:js实现元素拖拽

      本文链接:https://www.haomeiwen.com/subject/zwsdnttx.html