JavaScript实现网页元素的拖拽效果
2014-04-26 00:27
686 查看
下面的页面中放了两个div,可以通过鼠标拖拽这两个元素到任意位置。
![](http://img.blog.csdn.net/20140426002345218?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamFja2ZydWVk/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20140426002445437?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamFja2ZydWVk/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
实现该效果的HTML页面代码如下所示:
外部JavaScript文件代码如下所示:
实现该效果的HTML页面代码如下所示:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style type="text/css"> #xixi { width:200px; height: 200px; position:absolute; left: 50px; top: 50px; background-color: lightcyan; } #haha { position:absolute; left:300px; top:300px; background-color: yellow; width:200px; height: 200px; } </style> <script type="text/javascript" src="js/mylib.js"></script> <script type="text/javascript"> window.onload = function() { var obj1 = createDraggableObject(); var obj2 = createDraggableObject(); obj1.init($('xixi')); obj2.init($('haha')); }; </script> </head> <body> <div id="xixi">Fuck!</div> <div id="haha">Shit!</div> </body> </html>
外部JavaScript文件代码如下所示:
/** * 根据id获取页面元素 * @param id * @returns {HTMLElement} */ function $(id) { return document.getElementById(id); } /** * 创建可拖拽对象的工厂方法 */ function createDraggableObject() { return { obj: null, left: 0, top: 0, oldX: 0, oldY: 0, isMouseLeftButtonDown: false, init: function (obj) { this.obj = obj; var that = this; this.obj.onmousedown = function (args) { var evt = args || event; this.style.zIndex = 100; that.isMouseLeftButtonDown = true; that.oldX = evt.clientX; that.oldY = evt.clientY; if (this.currentStyle) { that.left = parseInt(this.currentStyle.left); that.top = parseInt(this.currentStyle.top); } else { var divStyle = document.defaultView.getComputedStyle(this, null); that.left = parseInt(divStyle.left); that.top = parseInt(divStyle.top); } }; this.obj.onmousemove = function (args) { that.move(args || event); }; this.obj.onmouseup = function () { that.isMouseLeftButtonDown = false; this.style.zIndex = 0; }; }, move: function (evt) { if (this.isMouseLeftButtonDown) { var dx = parseInt(evt.clientX - this.oldX); var dy = parseInt(evt.clientY - this.oldY); this.obj.style.left = (this.left + dx) + 'px'; this.obj.style.top = (this.top + dy) + 'px'; } } }; }
相关文章推荐
- JavaScript实现网页元素的拖拽效果
- JavaScript实现网页元素的拖拽效果
- Javascript实现网页中元素的拖拽
- JavaScript实现拖拽网页内元素的方法
- jquery网页元素拖拽插件效果及实现
- javascript实现PC网页里的拖拽效果
- js拖拽效果 javascript实现将元素拖拽如某容器效果demo
- jquery网页元素拖拽插件效果及实现
- javascript实现PC网页里的拖拽效果
- jQuery实现网页特效之拖拽元素
- jquery和javascript两种实现浮动窗口的拖拽效果(参照网上资料以及韩顺平老师讲解)
- 基于jquery实现的鼠标拖拽元素复制并写入效果
- 用Javascript实现鼠标拖拽网页表单(1)
- 利用JavaScript实现天气菜单栏在网页边角处展现和隐藏的效果
- 如何用javascript实现 网页标题的滚动效果
- 原生JavaScript与jQuery(绝对、相对定位)实现拖拽效果
- 用 JavaScript 实现网页图片等比例缩放效果
- 用Javascript实现网页表单鼠标拖拽