使用javaScript实现鼠标拖拽事件


Posted in Javascript onApril 03, 2020

本文实例为大家分享了js实现鼠标拖拽事件的具体代码,供大家参考,具体内容如下

<html>
 <head>
  <meta charset="UTF-8">
  <title></title>

  <style>
   body{
    margin: 0;
    padding: 0;
   }
   div{
    position: absolute;
    top: 200px;/*div的y轴*/
    left: 150px;/*div的x轴*/
    width: 300px;
    height: 200px;
    background-color: gray;
   }
   div:hover{
    cursor: move;
   }
  </style>

  <script>

   /*
    * 分析:
    * 获取鼠标实时移动的坐标;m_move_x,m_move_y
    * 鼠标按下时的坐标;m_down_x,m_down_y
    * div的坐标;dx,dy
    * 鼠标按下时,鼠标与div的偏移量;md_x,md_y
    * div的新坐标;ndx,ndy
    */

   var isDown = false;//记录鼠标状态
   var move_div ;//要操作的div对象
   var m_move_x,m_move_y,m_down_x,m_down_y,dx,dy,md_x,md_y,ndx,ndy;

   //鼠标按下
   function down(){
    move_div = document.getElementById("move_div");
    isDown = true;

    //获取鼠标按下时坐标
    m_down_x = event.pageX;
    m_down_y = event.pageY;

    //获取div坐标
    dx = move_div.offsetLeft;
    dy = move_div.offsetTop;

    //获取鼠标与div偏移量
    md_x = m_down_x - dx;
    md_y = m_down_y - dy;
   }

   //鼠标移动
   function move(){
    move_div = document.getElementById("move_div");

    //实时更新div的坐标
    dx = move_div.offsetLeft;
    dy = move_div.offsetTop;

    //获取鼠标移动实时坐标
    m_move_x = event.pageX;
    m_move_y = event.pageY;

    //鼠标按下时移动才触发
    if(isDown){

     //获取新div坐标,鼠标实时坐标 - 鼠标与div的偏移量
     ndx = m_move_x - md_x;
     ndy = m_move_y - md_y;

     //把新div坐标值赋给div对象
     move_div.style.left = ndx+"px";
     move_div.style.top = ndy+"px";

    }

   }

   //鼠标释放
   function up(){
    isDown = false;
   }


  </script>

 </head>
 <body>

  <div id="move_div" onmousedown="down()" onmouseup="up()" onmousemove="move()"></div>

 </body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
文本框输入时 实现自动提示(像百度、google一样)
Apr 05 Javascript
javascript基于HTML5 canvas制作画箭头组件
Jun 25 Javascript
分享28款免费实用的 JQuery 图片和内容滑块插件
Dec 15 Javascript
javascript函数式编程程序员的工具集
Oct 11 Javascript
Bootstrap3 内联单选和多选框
Dec 29 Javascript
原生js实现对Ajax的封装(仿jquery)
Jan 22 Javascript
微信小程序 常用工具类详解及实例
Feb 15 Javascript
JavaScript轮播图简单制作方法
Feb 20 Javascript
JavaScript实现的选择排序算法实例分析
Apr 14 Javascript
JS实现多物体运动的方法详解
Jan 23 Javascript
在vue项目中使用md5加密的方法
Sep 14 Javascript
微信自定义分享链接信息(标题,图片和内容)实现过程详解
Sep 04 Javascript
vue-cli项目中怎么使用mock数据
Sep 27 #Javascript
javaScript实现复选框全选反选事件详解
Nov 20 #Javascript
javaScript实现滚动条事件详解
Mar 24 #Javascript
详解vue-cil和webpack中本地静态图片的路径问题解决方案
Sep 27 #Javascript
深入掌握 react的 setState的工作机制
Sep 27 #Javascript
JavaScript 保护变量不被随意修改的实现代码
Sep 27 #Javascript
JavaScript实现打印星型金字塔功能实例分析
Sep 27 #Javascript
You might like
全国FM电台频率大全 - 16 河南省
2020/03/11 无线电
有关PHP性能优化的介绍
2013/06/20 PHP
php实现图片上传并利用ImageMagick生成缩略图
2016/03/14 PHP
PHP安全之register_globals的on和off的区别
2020/07/23 PHP
jquery获取ASP.NET服务器端控件dropdownlist和radiobuttonlist生成客户端HTML标签后的value和text值
2010/06/28 Javascript
iframe 父窗口和子窗口相互的调用方法集锦
2010/12/15 Javascript
js简单的表格添加行和删除行操作示例
2014/03/31 Javascript
js 实现浏览历史记录示例
2014/04/20 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
使用递归遍历对象获得value值的实现方法
2016/06/14 Javascript
jQuery Ajax Post 回调函数不执行问题的解决方法
2016/08/15 Javascript
BootStrap的双日历时间控件使用
2017/07/25 Javascript
Django与Vue语法的冲突问题完美解决方法
2017/12/14 Javascript
layui获取多选框中的值方法
2018/08/15 Javascript
微信小程序车牌号码模拟键盘输入功能的实现代码
2018/11/11 Javascript
JavaScript算法学习之冒泡排序和选择排序
2019/11/02 Javascript
vue treeselect获取当前选中项的label实例
2020/08/31 Javascript
[01:37]TI4西雅图DOTA2前线报道 VG拿下首胜教练357给出获胜秘诀
2014/07/10 DOTA
[01:02]DOTA2辉夜杯决赛日 CDEC.Y对阵VG赛前花絮
2015/12/27 DOTA
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
对numpy Array [: ,] 的取值方法详解
2018/07/02 Python
Python timer定时器两种常用方法解析
2020/01/20 Python
Python tcp传输代码实例解析
2020/03/18 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
2020/05/26 Python
Clearly澳大利亚:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
圣彼得堡鲜花配送:Semicvetic
2020/09/15 全球购物
学校司机岗位职责
2013/11/14 职场文书
2014国庆节主题活动方案:快乐的国庆节
2014/09/16 职场文书
党员自我评议对照检查材料
2014/09/27 职场文书
个人查摆问题整改措施
2014/10/04 职场文书
硕士毕业论文导师评语
2014/12/31 职场文书
小学元宵节活动总结
2015/02/06 职场文书
辞职信怎么写
2015/02/27 职场文书
会计稽核岗位职责
2015/04/13 职场文书
毕业生捐书活动倡议书
2015/04/27 职场文书
优秀创业计划书分享
2019/07/19 职场文书