美文网首页
js拖拽html元素工具类

js拖拽html元素工具类

作者: 我没事_就是有点难受 | 来源:发表于2021-02-21 21:14 被阅读0次

复制就能用的拖拽js方法

原生js实现
拖拽元素方法

  makeItMoveable = (elem, box) => {
    let move_enable = false;
    let offsetLeft; // 上次鼠标点击位置到左边的距离
    let offsetTop;  // 上次鼠标点击位置到上边的距离
    elem.addEventListener('mousedown', (e) => {
        offsetLeft = e.clientX;
        offsetTop = e.clientY;
        move_enable = true;
        console.log('点击元素', offsetLeft, offsetTop, move_enable);
    })
    
    // 需要在父元素box上监听移动事件,而不是被移动的元素上,否则移动得过快可能鼠标会滑出div,就移不动了
    box.addEventListener('mousemove', (e) => {
      console.log(move_enable)
      if (move_enable) {
        // 计算位移
        let dx = e.clientX-offsetLeft;
        let dy = e.clientY-offsetTop;
        let cx = elem.offsetLeft + dx;
        let cy = elem.offsetTop + dy;
        elem.style.setProperty('left', cx + 'px');
        elem.style.setProperty('top', cy + 'px');
        
        offsetLeft = e.clientX;
        offsetTop = e.clientY;
        console.log('移动元素', cx, cy);
      }
    })
    
    box.addEventListener('mouseup', (e)=> {
        console.log('结束移动元素');
        move_enable=false;
    })
  }
 const drop = (id, pid) => {
      const div = document.querySelector(`#${id}`);
      const box = document.querySelector(`#${pid}`);
      makeItMoveable(div, box);
  }

使用(注意拖拽目标元素需绝对定位 position: 'absolute/fixed')

drop(id: string, parentId: string); // id: 需要拖拽元素的id; parentId: 父元素的id;

相关文章

  • js拖拽html元素工具类

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

  • HTML DOM的增删改查总结(查找)

    查找 HTML 元素 1. 原生js 通过 id 查找 HTML 元素 通过标签名找到 HTML 元素 通过类名找...

  • 拖拽API

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

  • HTML5 拖拽事件

    HTML5 拖拽事件图片自带拖拽功能其他元素也通过设置 draggable=true属性 实现拖拽功能 垃圾(拖拽...

  • HTML5拖拽事件

    HTML5拖拽事件 1. 设置拖拽 图片自带拖拽功能其他元素可设置draggable属性 例子: 1.1. 拖拽元...

  • 拖拽-12.19

    1.源元素事件(要拖拽的文件) 2.目标元素事件(要拖拽到哪里去) HTML页面默认不允许拖放,称之为HTML页面...

  • 自定义表单(一)--拖拽(JS版本)

    系列文章自定义表单(一)--拖拽(JS版本)自定义表单(二)--拖拽(HTML版本)自定义表单(完)--(html...

  • 自定义表单(二)--拖拽(HTML版本)

    系列文章自定义表单(一)--拖拽(JS版本)自定义表单(二)--拖拽(HTML版本)自定义表单(完)--(html...

  • 自定义表单(完)--(html5版本)

    系列文章自定义表单(一)--拖拽(JS版本)自定义表单(二)--拖拽(HTML版本)自定义表单(完)--(html...

  • RecyclerView拖拽排序工具类

    RecyclerView拖拽排序item工具类 使用

网友评论

      本文标题:js拖拽html元素工具类

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