以下的页面中放了两个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';}}};
}

JavaScript实现网页元素的拖拽效果相关推荐

  1. html js点击字图片下拉,JavaScript实现文字与图片拖拽效果的方法

    本文实例讲述了JavaScript实现文字与图片拖拽效果的方法.分享给大家供大家参考.具体实现方法如下: JavaScript实现文字与图片的拖拽效果 *{padding:0;margin:0;} . ...

  2. javascript小实例,PC网页里的拖拽(转)

    这是现在的效果,可能改了一些,原来的效果是,里面的这张图是可以上下左右拖动的,然后房子上面的显示的楼栋号,也跟着图片一起移动,当时js能力还不行,未能实现项目经理的要求,不过后来项目经理又把这个效果推 ...

  3. JavaScript实现鼠标拖拽效果

    JavaScript实现鼠标拖拽效果 前几篇博客一直在讲鼠标的移动事件相关的效果,今天再来讲一讲如何利用鼠标事件实现拖拽div块移动的效果.效果如图: HTML代码: <div id=" ...

  4. 实现元素拖拽放大缩小_Vue实战067:DOM元素拖拽效果的实现

    DOM元素拖拽效果: 当鼠标选中目标元素之后可以将其拖放至指定区域的任意位置,实现的思路主要是通过鼠标事件按下.移动.抬起,摁下鼠标时记录鼠标位置以及元素位置并算出鼠标相对元素的位置,在拖拽时记下当前 ...

  5. Javascript实现拖拽效果

    我们执行拖拽操作时, 1.按住某元素 2.移动鼠标 3.移动鼠标到相应位置后松开鼠标 基于以上操作,页面拖拽效果需要三个事件 onmousedown onmousemove onmouseup 在on ...

  6. Android之实现RecyclerView拖拽效果和固定部分元素不进行交换位置(包含源代码下载地址)

    1.效果爆照 启动的效果 拖动过程中的效果 拖动后的效果 2.需求和问题 需求:RecyclerView实现拖拽效果,但是部分固定位置不能进行拖拽也不能在拖拽的过程中交换顺序

  7. 盒子拖拽效果,原生js实现

    原生js实现拖拽效果 <!DOCTYPE html> <html lang="en"> <head><meta charset=" ...

  8. DOM 案例——(美团外卖下拉框菜单、半透明——信息滑入、模态窗口拖拽效果、放大镜效果、滚动条滑到一定位置的固定导航栏、12306购票网站多级联动、斗鱼TV无规则弹幕特效、百度搜索条动态输入下拉瀑布)

    目录 1.缓动动画--美团外卖下拉框菜单 2.半透明--信息滑入 3.模态窗口拖拽效果 4.放大镜效果 5.滚动条滑到一定位置的固定导航栏 6.12306购票网站多级联动 7.斗鱼TV无规则弹幕特效 ...

  9. 【墙裂推荐】【原生基础版】js原生实现拖拽效果,注意不要忘了div的cursor用grab和grabbing 还是古法炮制、传统工艺的原生代码兼容性最好,推荐

    以下方式的劣势就是在放弃拖拽那一刻会触发click事件,通常如果被拖拽元素还有其他点击事件,会重复触发,往往并非业务需求.优势就是-额-貌似这段代码没什么屌优势! <div class='dra ...

最新文章

  1. CoreLocation.ConnectionClient CFDictionaryApplyFunction Crash
  2. codevs 3981 动态最大子段和(线段树)
  3. #035 大数阶乘 PTA题目6-10 阶乘计算升级版 (20 分)
  4. cocoapod卡在了analyzing dependencies
  5. python查找公共前缀_Python实现查找字符串数组最长公共前缀示例
  6. 安卓超过两行就加省略号_基础标点符号使用规则详解—8.省略号
  7. redis在php中的应用(string篇)
  8. weui 导航悬浮固定
  9. 最短路径Shortest Path algorithm
  10. 一步一步写算法(之字符串查找 中篇)
  11. Memory Cleaner for Mac(内存清理工具)最新版
  12. python ctype_Python中用ctype库
  13. 小胜凭智, 大胜靠德
  14. 页高速缓存(Page Cache)
  15. C++内存泄漏及解决办法
  16. 基于STM32单片机的智能药盒带语音播报原理图程序
  17. puppet单机模型
  18. [531]微信之wxpy库(基于itchat库)
  19. ps导出发生未知错误,怎么办?
  20. 成熟好用的电池供电切换电路

热门文章

  1. 实验吧---隐写术之男神一般都是很低调的!
  2. CI Weekly #7 | Instgram/Quora 等大公司如何做持续部署?
  3. Git 2.5增加了工作树、改进了三角工作流、性能等诸多方面
  4. 会计基础第一章模拟试题(1)
  5. MODE —— 计算10个分数的平均值(知识点: 数组 变长数组)
  6. 关于kali相关的参考文章
  7. 还珠格格里的尔泰,重现娱乐圈
  8. Linux 系统的目录结构_【all】
  9. PowerDesigner使用教程3
  10. 软件测试技术lab2——Selenium上机实验