退拽原理2

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            #div1{
                width: 100px;
                height: 100px;
                background: red;
                position: absolute;
            }
        </style>
        <script>
            window.onload=function(){
                
//                1.拖拽的时候,如果有文字被选中,会产生问题:
//                     原因:当鼠标按下的时候,如果页面中有文字被选中,那么会触发浏览器默认拖拽文字的效果
//                            解决:
//                                标准:阻止默认行为
//                                非IE下:全局捕获
//                     拖拽图片也会有问题,解决办法同上
                
                var oDiv=document.getElementById("div1");
                
                oDiv.onmousedown=function(ev){
                    var ev=ev||event;
//                              鼠标的位置-当前div距离浏览器左边的距离
                    var disX=ev.clientX-this.offsetLeft;
                    var disY=ev.clientY-this.offsetTop;
//                    IE下:用全局捕获就可以实现
                    if(oDiv.setCapture){
                        oDiv.setCapture();
                    }
                    document.onmousemove=function(ev){
                        var ev=ev||event;
                        oDiv.style.left=ev.clientX-disX+"px";
                        oDiv.style.top=ev.clientY-disY+"px";
                    }
                    document.onmouseup=function(){
                        document.onmousemove=document.onmouseup=null;
//                        IE下
                        //释放全局捕获 releaseCapture();
                        if(oDiv.releaseCapture){
                            oDiv.releaseCapture();
                        }
                        
                    }
                    return false;
                }
                
                
            }
        </script>
    </head>
    <body>
        afdasssssssssss
        <div id="div1"></div>
    </body>
</html>

猜你喜欢

转载自www.cnblogs.com/gxywb/p/10036576.html