核心程式碼:
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>鼠标拖动和拖拽的鼠标指针特效</title> <style> #box{width:100px;height:100px;background:#966;position:absolute;left:100px;top:100px;cursor:pointer;} </style> </head> <body> <div id="box"></div> <script> var doc=document; function getViewport(){ return {width:Math.max(document.documentElement.clientWidth,document.documentElement.scrollWidth), height:Math.max(document.documentElement.clientHeight,document.documentElement.scrollHeight) }; } function compareNum(x,minNum,maxNum){ switch(true){ case x<minNum:x=minNum;break; case x>maxNum:x=maxNum;break; default:x; } return x; } box.style.left='100px' box.style.top='100px' box.onmousedown=function(e){ var e=e||window.event; var maxL=getViewport().width-100, maxT=getViewport().height-100; this.startL=parseInt(this.style.left); this.startT=parseInt(this.style.top); //alert(e.clientX) this.startX=e.clientX; this.startY=e.clientY; //alert(maxL+':'+maxT+':'+L+':'+T) doc.onmousemove=function(e){ posXY(e,0,0,maxL,maxT); }; doc.onmouseup=function(){ doc.onmousemove=null; doc.onmouseup=null; }; return false; } function posXY(e,minL,minT,maxL,maxT){ var e=e||window.event; var x=box.startL-(box.startX-e.clientX); var y=box.startT-(box.startY-e.clientY); box.style.left=compareNum(x,minL,maxL)+'px' box.style.top=compareNum(y,minT,maxT)+'px' } </script> </body> </html>