<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> #div1{ 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>