JavaScript实现网页元素的拖拽效果
来源:互联网 发布:减肥打卡软件 编辑:程序博客网 时间:2024/05/21 09:26
下面的页面中放了两个div,可以通过鼠标拖拽这两个元素到任意位置。
实现该效果的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'; } } };}
3 0
- JavaScript实现网页元素的拖拽效果
- JavaScript实现网页元素的拖拽效果
- Javascript实现网页中元素的拖拽
- JavaScript实现的网页放大镜效果
- javascript实现拖拽并替换网页块元素
- 网页元素拖拽效果(转)
- JavaScript实现Html元素的拖拽
- JavaScript 实现简单的拖拽效果
- 如何用javascript实现 网页标题的滚动效果
- 实现网页中元素的拖拽功能
- 简单网页元素拖拽实现
- 网页内部元素拖拽实现
- 网页变换效果的实现
- 网页翻页效果的实现
- JavaScript特效:通过拖拽移动网页元素
- javascript 实现图片的拖拽和伸缩效果
- JavaScript实现最简单的拖拽效果
- JavaScript实现最简单的拖拽效果
- 【枚举】POJ1753 Flip Game&POJ2965 The Pilots Brothers' refrigerator
- 熊猫阿波的故事 2201
- 【程序14】分解质因数 and 【程序19】找出完数
- 事件 HTML 4.01 与 HTML 5 之间的差异
- LeedCode OJ --- Binary Tree Inorder Traversal
- JavaScript实现网页元素的拖拽效果
- js 快速排序
- 基本数据类型包装类(手记)
- 啊啊啊智商拙计啊
- Google Map API V2密钥申请
- 字符串处理
- 最短路 (Dijstra) Til the Cows Come Home
- 简介录音和播放音频实现
- POJ 2115 扩展欧几里得解最基本的同余方程