拖动页面元素,松开释放

Posted tianxiaxuange

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拖动页面元素,松开释放相关的知识,希望对你有一定的参考价值。

嗯哼。不多说,直接上代码了。

  • // 为元素 绑定拖动事件
    function bindDragEvent(obj){
        obj.onmousedown = function(e){
            e = e || window.event;
            
            obj.setCapture && obj.setCapture();    // IE8 及以下 强制捕获下一次单击事件
            
            obj.fixedX = e.clientX - (obj.getBoundingClientRect().left - document.documentElement.clientLeft);
            obj.fixedY = e.clientY - (obj.getBoundingClientRect().top - document.documentElement.clientTop);
            
            document.onmousemove = function(e){
                e = e || window.event;
                
                var x = e.clientX + (document.documentElement.scrollLeft || window.pageXOffset || document.body.scrollLeft);
                var y = e.clientY + (document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop);
                
                obj.style.left = x - obj.fixedX + "px";    // 鼠标在页面中的坐标 - 鼠标在元素内的坐标 = 元素在页面中的坐标
                obj.style.top = y - obj.fixedY + "px";
            };
            
            document.onmouseup = function(){
                document.onmousemove = null;    // 解除 鼠标移动div跟随 事件
                document.onmouseup = null;    // 解除鼠标松开事件
                obj.releaseCapture && obj.releaseCapture();    // IE8 及以下 解除强制捕获单击事件
            };
            
            return false;
        };
    }

     

以上是关于拖动页面元素,松开释放的主要内容,如果未能解决你的问题,请参考以下文章

OpenGL用鼠标拖动绘制矩形?

JS拖拽元素原理及实现代码

WPF拖动按钮,按钮的位置互换

HTML5拖放(Drag和Drop)元素使用详解

拖动和释放通知时,在 iOS 中调用 ApplicationBecomeActive

HTML5拖拽/拖放(drag & drop)详解