Open my eyes , Open my mind
just for java
BlogJava
首页
新随笔
联系
聚合
管理
随笔-5 评论-41 文章-13 trackbacks-0
javascript Element拖拽功能
在页面中包含如下代码之后,使用
makeDraggable(
item
)来使页面元素可以拖拽
1
2
document.onmousemove
=
mouseMove;
3
document.onmouseup
=
mouseUp;
4
5
var
dragObject
=
null
;
6
var
mouseOffset
=
null
;
7
var
maxTop
=
null
;
8
var
maxWidth
=
null
;
9
10
function
getMouseOffset(target, event)
{
11
event
=
event
||
window.event;
12
13
var
docPos
=
getPosition(target);
14
var
mousePos
=
mouseCoords(event);
15
return
{x:mousePos.x
-
docPos.x, y:mousePos.y
-
docPos.y}
;
16
}
17
18
function
getPosition(e)
{
19
var
left
=
0
;
20
var
top
=
0
;
21
22
while
(e.offsetParent)
{
23
left
+=
e.offsetLeft;
24
top
+=
e.offsetTop;
25
e
=
e.offsetParent;
26
}
27
28
left
+=
e.offsetLeft;
29
top
+=
e.offsetTop;
30
31
return
{x:left, y:top}
;
32
}
33
34
function
mouseMove(event)
{
35
event
=
event
||
window.event;
36
var
mousePos
=
mouseCoords(event);
37
38
if
(dragObject)
{
39
dragObject.style.position
=
'absolute';
40
var
tmpTop
=
mousePos.y
-
mouseOffset.y;
41
if
(tmpTop
<
10
)
{
42
tmpTop
=
10
;
43
}
44
if
(tmpTop
>
maxTop)
{
45
tmpTop
=
maxTop;
46
}
47
var
tmpLeft
=
mousePos.x
-
mouseOffset.x;
48
if
(tmpLeft
<
10
)
{
49
tmpLeft
=
10
;
50
}
51
if
(tmpLeft
>
maxWidth)
{
52
tmpLeft
=
maxWidth;
53
}
54
dragObject.style.top
=
tmpTop
+
"
px
"
;
55
dragObject.style.left
=
tmpLeft
+
"
px
"
;
56
return
false
;
57
}
58
}
59
function
mouseUp()
{
60
dragObject
=
null
;
61
}
62
63
function
mouseCoords(event)
{
64
if
(event.pageX
||
event.pageY)
{
65
return
{x:event.pageX, y:event.pageY}
;
66
}
67
return
{
68
x:event.clientX
+
document.body.scrollLeft
-
document.body.clientLeft,
69
y:event.clientY
+
document.body.scrollTop
-
document.body.clientTop
70
}
;
71
}
72
73
function
makeDraggable(item)
{
74
if
(
!
item)
return
;
75
item.onmousedown
=
function
(event)
{
76
dragObject
=
this
.parentNode;
77
mouseOffset
=
getMouseOffset(
this
, event);
78
if
(window.innerHeight
>
document.body.clientHeight)
{
79
maxTop
=
window.innerHeight
-
dragObject.offsetHeight
-
50
;
80
}
else
{
81
maxTop
=
document.body.clientHeight
-
dragObject.offsetHeight
-
10
;
82
}
83
maxWidth
=
document.body.clientWidth
-
dragObject.offsetWidth
-
10
;
84
return
true
;
85
}
86
}
posted on 2006-12-12 17:34
OO
阅读(845)
评论(1)
编辑
收藏
所属分类:
java相关的乱七八糟的东西
评论:
#
re: javascript Element拖拽功能
2007-03-29 16:21 |
王鑫
想要这个功能
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
java编码问题
使java服务器端支持断点续传
为javascript增加import方法,用来导入需要的js文件.
javascript Element拖拽功能
常用javascript正则表达式
web程序中使用javascript进行数据校验
从一个小例子看正则表达式的执行步骤
<
2024年11月
>
日
一
二
三
四
五
六
27
28
29
30
31
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
1
2
3
4
5
6
7
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔档案
2014年2月 (1)
2012年1月 (1)
2006年3月 (2)
2006年1月 (1)
文章分类
java相关的乱七八糟的东西(8)
框架、工具的使用(3)
文章档案
2011年7月 (1)
2010年4月 (1)
2008年3月 (1)
2007年4月 (2)
2006年12月 (2)
2006年11月 (1)
2006年8月 (1)
2006年5月 (1)
2006年4月 (2)
2006年2月 (1)
收藏夹
java(1)
收藏的BLOG
DLEE
冰云
嘟嘟老窝
曹晓刚
江南白衣
潜鱼在渊
老庄
透明思考
飞云小侠
搜索
最新评论
1. re: firefox扩展(双击关闭标签页,支持现有的任何版本firefox) [未登录]
好!下载来试试
--123
2. re: firefox扩展(双击关闭标签页,支持现有的任何版本firefox)
支持楼主
--luxinlin
3. re: linux mint12安装ibus之后,语言栏不跟随光标和系统托盘输入法图标不能显示问题解决
我的是lubuntu,之前遗漏了ibus-gtk3这个包,安装上后光标跟随问题解决了,谢谢作者哈。
--bodo005
4. re: firefox扩展(双击关闭标签页,支持现有的任何版本firerox)
很好,非常感谢啊
--Jessy
5. re: firefox扩展(双击关闭标签页,支持现有的任何版本firerox)
很好,很强大,亲测成功,非常感谢您的分享
--Jessy
阅读排行榜
1. linux mint12安装ibus之后,语言栏不跟随光标和系统托盘输入法图标不能显示问题解决(2524)
2. PC安装MACOSX系统(懒人版)步骤(1834)
3. Linux下的MySql数据库的安装与配置(521)
4. WebWork 2.2: Released and ready for Struts!(428)
5. 数据库分页(362)
评论排行榜
1. linux mint12安装ibus之后,语言栏不跟随光标和系统托盘输入法图标不能显示问题解决(1)
2. 数据库分页(0)
3. Linux下的MySql数据库的安装与配置(0)
4. WebWork 2.2: Released and ready for Struts!(0)
5. PC安装MACOSX系统(懒人版)步骤(0)