关于拖拽

自从上次写过拖拽就忘了怎么实现。今天又研究了半天,终于搞懂了。

首先,被拖拽的元素一定要设置position:absolute,今天就是忘了这一点,频频出错,不得要领。

其次,拖拽分三个步骤:

1.点击元素,即onmousedown;

2.移动,即onmousemove;

3.鼠标弹起,即onmouseup;

总结代码如下:

pox.onmousedown = function(e){

    var e = e || window.event;

    var diffX = e.clientX - pox.offsetLeft;

    var diffY = e.clientY - pox.offsetTop;

    document.onmousemove = function(e){

        var e = e || window.event;

        pox.style.left = e.clientX - diffX + 'px';

        pox.style.top = e.clientY - diffY + 'px';

    }

    document.onmouseup = function(){

        document.onmousemove = null;

        document.onmouseup = null;

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. tab列表折叠效果 html: 能源系统事业部 岗位名称: 工作地点 岗位名...
    lilyping阅读 1,897评论 0 1
  • 事件对象 鼠标事件 event.clientX在可视区中,鼠标点击的x坐标 event.clientY在可视区中,...
    LaBaby_阅读 599评论 0 1
  • 鼠标跟随(鼠标☞在元素的中心,缓动动画慢慢移动)开始位置 var leaderX = pic.offsetLeft...
    悟空你又瘦了阅读 563评论 0 1
  • 我们首先要明白,我们给页面添加效果用到的js到底是什么?js其实包含三部分:dom 文档对象模型 bom 浏览...
    一直以来都很好阅读 817评论 0 0
  • 事件流: 事件流:页面接收事件的顺序。 IE定义的:事件冒泡流(由最具体的元素依次传播到DOM树的最上层的Docu...
    xiaoguo16阅读 604评论 0 0