美文网首页
javascript学习笔记-页面多个元素的鼠标拖拽效果

javascript学习笔记-页面多个元素的鼠标拖拽效果

作者: 持续5年输出bug | 来源:发表于2019-03-27 07:53 被阅读0次

其实就是直接写个函数,谁用谁调即可。。。。。
1.先写两个元素,开启绝对定位

 #box1 {
      background-color: red;
      height: 200px;
      width: 200px;
      position: absolute;
    }

    #box2 {
      background-color: yellow;
      height: 200px;
      width: 200px;
      position: absolute;
      top: 200px;
      left: 200px;
    }
 <div id="box1"></div>
 <div id="box2"></div>

先获取这两个元素

var box1=document.getElementById("box1");
var box2=document.getElementById("box2");

然后写个函数

  function darg(obj) {
    obj.onmousedown = function (event) {
      // 专门兼容IE8的,阻止全选后拖拽,会自动进行搜索
      if (obj.setCapture) {
        obj.setCapture();
      }
      event = event || window.event
      var ol = event.clientX - obj.offsetLeft;
      var ot = event.clientY - obj.offsetTop;
      document.onmousemove = function (event) {
        event = event || window.event
        var x = event.clientX - ol;
        var y = event.clientY - ot;
        obj.style.left = x + "px";
        obj.style.top = y + "px";
      }
      document.onmouseup = function () {
      // 鼠标移除和释放按下操作时,取消以下事件
        document.onmousemove = null;
        document.onmouseup = null;
      }
      // 阻止全选后拖拽,会自动进行搜索 该方法不适用IE8
      return false;
    }
  }

当我需要调用的时候

 darg(box1);
 darg(box2);

完整代码

  <style>
    #box1 {
      background-color: red;
      height: 200px;
      width: 200px;
      position: absolute;
    }

    #box2 {
      background-color: yellow;
      height: 200px;
      width: 200px;
      position: absolute;
      top: 200px;
      left: 200px;
    }
  </style>

  <div id="box1"></div>
  <div id="box2"></div>

  <script>
    var box1 = document.getElementById("box1");
    var box2 = document.getElementById("box2");
    darg(box1);
    darg(box2);
    function darg(obj) {
      obj.onmousedown = function (event) {
        // 专门兼容IE8的,阻止全选后拖拽,会自动进行搜索
        if (obj.setCapture) {
          obj.setCapture();
        }
        event = event || window.event
        var ol = event.clientX - obj.offsetLeft;
        var ot = event.clientY - obj.offsetTop;
        document.onmousemove = function (event) {
          event = event || window.event
          var x = event.clientX - ol;
          var y = event.clientY - ot;
          obj.style.left = x + "px";
          obj.style.top = y + "px";
        }
        document.onmouseup = function () {
          // 鼠标移除和释放按下操作时,取消以下事件
          document.onmousemove = null;
          document.onmouseup = null;
        }
        // 阻止全选后拖拽,会自动进行搜索 该方法不适用IE8
        return false;
      }

    }
  </script>

相关文章

  • javascript学习笔记-页面多个元素的鼠标拖拽效果

    其实就是直接写个函数,谁用谁调即可。。。。。1.先写两个元素,开启绝对定位 先获取这两个元素 然后写个函数 当我需...

  • 拖拽,碰撞检测

    1. 拖拽 1.1 拖拽原理 鼠标拖拽效果的实现,就是在鼠标摁下和移动的时候,修改元素的定位值的效果。 1.1.1...

  • 拖拽API

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

  • HTML5拖拽drag

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

  • pygame里操作事件

    鼠标事件的应用 图片拖拽 画球 多个球一起动 动画效果

  • javascript学习笔记-拖拽效果

    最近开发小程序,用到小程序里的拖拽效果,研究了下底层的原理,发现只要以下三点就可以完成拖拽效果。实现拖拽效果的三个...

  • JavaScript限定范围拖拽及自定义滚动

    学习笔记:拖拽div要发生三个事件: 鼠标按下onmousedown; 鼠标移动onmousemove; 鼠标松开...

  • JavaScript ☞ day3

    JavaScript基础学习笔记之JavaScript进阶 焦点事件 鼠标事件-单击与双击 鼠标事件-mouseo...

  • JavaScript 鼠标拖拽

    代码:

  • web前端-原生鼠标拖拽效果

    鼠标拖拽效果分为3个事件 鼠标按下事件onmousedown, 事件源是点击的对象, 就是我们要拖拽的对象 鼠标移...

网友评论

      本文标题:javascript学习笔记-页面多个元素的鼠标拖拽效果

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