简单的Javascript实现拖动层效果
2011-04-25 12:40 音乐让我说 阅读(396) 评论(0) 编辑 收藏 举报代码如下:
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> < html xmlns="http://www.w3.org/1999/xhtml"> < head > < title >简单的Javascript实现拖动层效果</ title > < script type="text/javascript"> var Drag = { obj: null, init: function (options) { options.handler.onmousedown = this.start; options.handler.root = options.root || options.handler; var root = options.handler.root; root.onDragStart = options.dragStart || new Function(); root.onDrag = options.onDrag || new Function(); root.onDragEnd = options.onDragEnd || new Function(); }, start: function (e) {//此时的this是handler var obj = Drag.obj = this; obj.style.cursor = 'move'; e = e || Drag.fixEvent(window.event); ex = e.pageX; ey = e.pageY; obj.lastMouseX = ex; obj.lastMouseY = ey; var x = obj.root.offsetLeft; var y = obj.root.offsetTop; obj.root.style.left = x + "px"; obj.root.style.top = y + "px"; document.onmouseup = Drag.end; document.onmousemove = Drag.drag; obj.root.onDragStart(x, y); }, drag: function (e) { e = e || Drag.fixEvent(window.event); ex = e.pageX; ey = e.pageY; var root = Drag.obj.root; var x = root.style.left ? parseInt(root.style.left) : 0; var y = root.style.top ? parseInt(root.style.top) : 0; var nx = ex - Drag.obj.lastMouseX + x; var ny = ey - Drag.obj.lastMouseY + y; root.style.left = nx + "px"; root.style.top = ny + "px"; Drag.obj.root.onDrag(nx, ny); Drag.obj.lastMouseX = ex; Drag.obj.lastMouseY = ey; }, end: function (e) { var x = Drag.obj.root.style.left ? parseInt(Drag.obj.root.style.left) : 0; var y = Drag.obj.root.style.top ? parseInt(Drag.obj.root.style.top) : 0; Drag.obj.root.onDragEnd(x, y); document.onmousemove = null; document.onmouseup = null; Drag.obj = null; }, fixEvent: function (e) { e.pageX = e.clientX + document.documentElement.scrollLeft; e.pageY = e.clientY + document.documentElement.scrollTop; return e; } } </ script > </ head > < body > < div > < br />今天你快乐吗?< br />< br />今天你快乐吗?< br />< br />今天你快乐吗?< br />< br />今天你快乐吗?< br />< br />今天你快乐吗?< br /> < br />今天你快乐吗?< br />< br />今天你快乐吗?< br />< br />今天你快乐吗?< br />< br />今天你快乐吗?< br />< br />今天你快乐吗?< br /> < br />今天你快乐吗?KKKKK< br />< br />今天你快乐吗?< br />< br />今天你快乐吗?< br />< br />今天你快乐吗?< br />< br />今天你快乐吗?< br /> < br />今天你快乐吗?< br />< br />今天你快乐吗?< br />< br />今天你快乐吗?MMMMMM< br />< br />今天你快乐吗?< br />< br />今天你快乐吗?< br /> < br />今天你快乐吗?< br />< br />今天你快乐吗?< br />< br />今天你快乐吗?< br />< br />今天你快乐吗?< br />< br />今天你快乐吗?< br /> < br />今天你快乐吗?< br /> < br />今天你快乐吗?< br /> < br />今天你快乐吗?asd< br /> < br />今天你快乐吗?< br /> < br />今天你快乐吗?< br /> < br />今天你快乐吗?< br /> < br />今天你快乐吗?asd< br /> < br />今天你快乐吗?a< br /> < br />今天你快乐吗?< br /> < br />今天你快乐吗?< br /> < br />今天你快乐吗?asd< br /> < br />今天你快乐吗?< br /> < br />今天你快乐吗?< br /> < br />今天你快乐吗?< br /> < br />今天你快乐吗?asd< br /> < br />今天你快乐吗?a< br /> < br />今天你快乐吗?< br /> < br />今天你快乐吗?< br /> < br />今天你快乐吗?asd< br /> < br />今天你快乐吗?< br /> < br />今天你快乐吗?< br /> < br />今天你快乐吗?< br /> < br />今天你快乐吗?asd< br /> < br />今天你快乐吗?a< br /> </ div > < div id="root" style="width:400px;height:300px;background-color:gray;position:absolute; left:0px; top:0px; z-index:100px;"> < h2 id="handler" style="width:400px;height:100px;background-color:red;cursor:move;"></ h2 > </ div > < script type="text/javascript"> Drag.init({ handler: document.getElementById("handler"),root:document.getElementById("root")}); </ script > </ body > </ html > |
谢谢浏览!
作者:音乐让我说(音乐让我说 - 博客园)
出处:http://music.cnblogs.com/
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步