<divid="back"@mousedown="draggableFun($event)"></div>
//e.clientX和e.clientY 相对于浏览器可视区的位置
//元素.offsetLeft\ 元素.offsetTop  获取元素、节点位置 参照已定位的祖先元素的位置,
//当所有祖先都未定位则参照 body 元素
//原理:鼠标移动前后相对于浏览器可视区的位置的差值+元素相对于已定位的祖先元素的位置// 鼠标拖拽事件
const draggableFun = (val) => {let div = document.getElementById("back");let dragFlag = false;let x, y;div.onmousedown = function (e) {dragFlag = true;e = e || window.event;// 获取鼠标在元素上的位置(鼠标按下时在元素上得位置)x = e.clientX - div.offsetLeft;y = e.clientY - div.offsetTop;};div.onmousemove = function (e) {if (dragFlag) {e = e || window.event;div.style.left = e.clientX - x + "px";div.style.top = e.clientY - y + "px";}};// 鼠标抬起事件div.onmouseup = function (e) {dragFlag = false;};
};
当鼠标按下鼠标移动的时候,记录移动中的 x、y 值,那么这个被拖拽的 dom 的 top 和
left 值就是:
top=鼠标按下时记录的 dom 的 top 值+(移动中的 y 值 - 鼠标按下时的 y 值)
left=鼠标按下时记录的 dom 的 left 值+(移动中的 x 值 - 鼠标按下时的 x 值)

vue项目实现鼠标拖拽功能相关推荐

  1. js实现鼠标拖拽功能基本思路

    如果要设置物体拖拽,那么必须使用三个事件,并且这三个事件的使用顺序不能颠倒. onmousedown:鼠标按下事件 onmousemove:鼠标移动事件 onmouseup:鼠标抬起事件 拖拽的基本原 ...

  2. iview+vue实现表头的拖拽功能

    一.项目需求: 需求:表格实现表头拖拽.排序.树形表格展示.下载Excel.下载CSV格式的数据 项目里用到的技术:iview的table+vue 参考文章:https://www.cnblogs.c ...

  3. python鼠标拖拽功能_selenium鼠标移动、拖拽、双击、长按等操作

    selenium鼠标操作靠的是ActionChains(行为链)类,前面的文章我们已经介绍过,详情可以看ActionChains类,selenium的鼠标操作就不一一举例了,本节把鼠标移动.拖拽.双击 ...

  4. vue项目之 el-table 拖拽行

    一.功能 表格的任意行都可以拖拽位置:默认不能拖拽表格,点击拖拽按钮可以拖拽. 二.代码 npm 下载 sortablejs 页面按钮: 页面el-table js引入 sortablejs data ...

  5. Unity 鼠标拖拽功能

    继承3个处理拖拽方法的接口IBeginDragHandler, IDragHandler, IEndDragHandler /// <summary>/// 实现接口的OnBeginDra ...

  6. 【WPF】鼠标拖拽功能DragOver和Drop

    在Winform里面实现拖入功能只要设置控件AllowDrop=true; 然后实现方法 //拖入 private void txtInputPath_DragOver(object sender, ...

  7. js简单实现鼠标拖拽功能:盒子可以跟着鼠标移动位置

    实现的原理: 根据上面的图可以算出移动后的盒子的left和top: 鼠标距离边界的值: ev.pageY - box.top ev.pageX - box.left box2.top = ev2.pa ...

  8. python鼠标拖拽功能_Python wxpython模块响应鼠标拖动事件操作示例

    本文实例讲述了Python wxpython模块响应鼠标拖动事件操作.分享给大家供大家参考,具体如下: wxpython鼠标拖动事件小案例: #coding:UTF-8 import wx app = ...

  9. 用JavaScript原生手写div的鼠标拖拽功能

    一.三个事件onmousedown(鼠标按下),onmousemove(鼠标移动),onmouseup(鼠标松) 鼠标按下时 box.onmousedown = function(e) {consol ...

最新文章

  1. PyTorch 1.5发布,与AWS联手推出TorchServe
  2. AngryTask - 基于伪 scrum 的个人项目开发产品
  3. ORACLE 中极易混淆的几个 NAME 的分析和总结
  4. Mysql加锁过程详解(3)-关于mysql 幻读理解
  5. FPGA基础知识极简教程(3)从FIFO设计讲起之同步FIFO篇
  6. Android GridView的使用方法
  7. virtualenv 模块
  8. python n个list如何组成矩阵_通过学习在processing中操作图片,掌握python 列表操作...
  9. 流程管理的流程与角色
  10. C#中通过Selenium定位a标签的问题
  11. c++ 指针(不断更新)
  12. 利用权限设置来阻止程序运行
  13. 计算机原理学习指导第3版,《计算机组成原理学习指导与习题解析(第3版)》...
  14. ORACLE RAC 视频教程
  15. 无敌!确定恋爱关系的搞笑招式
  16. 小细节见实力,告诉你vivo Z3如何成为爆款千元机
  17. 不离不弃共赴鸿蒙什么意思,鸿蒙是什么意思 “道起鸿蒙”是什么意思,有何典故,语出何处?...
  18. 正在安装其他程序,请等待安装完成
  19. 苹果M3处理器跑分曝光 Max性能提升24%
  20. python(Django之组合搜索、JSONP、XSS过滤 )

热门文章

  1. 【优化算法】基于matlab反向策略的麻雀搜索算法【含Matlab源码 1918期】
  2. Tracert是怎么跟踪路由的?
  3. coreseek php 分页,thinkphp中使用coreseek全文检索引擎进行分页搜索
  4. unity shader 毛玻璃效果 周围发光效果 Depth.shader
  5. 公务员面试天价培训班热火 鼓吹先舍才有得
  6. SpringMVC 异常处理(简单异常处理器 SimpleMappingExceptionResolver;自定义异常处理需要实现HandlerExceptionResolver接口)
  7. 阿里云ECS训练营Class4
  8. 【 C# 】 简易的Socket TCP Client客户端 -- 与PLC通讯
  9. Kubernetes 名字由来
  10. 计算机的发展中的人丁兴旺是什么意思,上海交通大学机器人家族“人丁兴旺”...