第一种原生js写法
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
|
window.onload=function ()
{
var
oDrag=document.getElementById(
'drag'
);
oDrag.onmousedown=function (ev)
{
var
oEvent=ev||
event
;
var
disX=oEvent.clientX-oDrag.offsetLeft;
//x坐标
var
disY=oEvent.clientY-oDrag.offsetTop;
//y坐标
document.onmousemove=function (ev)
{
var
oEvent=ev||
event
;
var
l=oEvent.clientX-disX;
//移动x坐标位置
var
t=oEvent.clientY-disY;
//移动y坐标位置
//限制范围
if
(l<0)
{
l=0;
}
else
if
(l>document.documentElement.clientWidth-oDrag.offsetWidth)
{
l=document.documentElement.clientWidth-oDrag.offsetWidth;
}
if
(t<0)
{
t=0;
}
else
if
(t>document.documentElement.clientHeight-oDrag.offsetHeight)
{
t=document.documentElement.clientHeight-oDrag.offsetHeight;
}
oDrag.style.left=l+
'px'
;
oDrag.style.top=t+
'px'
;
};
document.onmouseup=function ()
{
document.onmousemove=
null
;
document.onmouseup=
null
;
};
};
};
|
第二种jQuery写法
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
|
$(function(){
$(
'#drag'
).mousedown(function (){
var
patch=parseInt($(
this
).css(
"height"
))/2;
/* 也可以写成var patch=parseInt($(this).css("width"))/2*/
$(document).mousemove(function (
event
){
var
ox=
event
.clientX;
var
oy=
event
.clientY;
var
t=oy-patch;
var
l=ox-patch;
var
w=$(window).width()-$(
'#drag'
).width();
var
h=$(window).height()-$(
'#drag'
).height();
if
(t<0){
t=0;
}
else
if
(t>h){
t=h;
}
if
(l<0){
l=0;
}
else
if
(l>w){
l=w;
}
$(
'.drag'
).css({top:t,left:l})
})
});
$(document).mouseup(function (){
$(
this
).unbind(
"mousemove"
);
});
})
|