核心代码:
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>
|