核心代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
<!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> |