使用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 相关文章推荐
Javascript学习笔记5 类和对象
Jan 11 Javascript
Javascript 鼠标移动上去小三角形滑块缓慢跟随效果
Apr 26 Javascript
最好用的省市二级联动 原生js实现你值得拥有
Sep 22 Javascript
Jquery ajax基础教程
Nov 20 Javascript
angularjs在ng-repeat中使用ng-model遇到的问题
Jan 21 Javascript
AngularJs concepts详解及示例代码
Sep 01 Javascript
Bootstrap框架的学习教程详解(二)
Oct 18 Javascript
javascript  数组排序与对象排序的实例
Jul 17 Javascript
详解vuex结合localstorage动态监听storage的变化
May 03 Javascript
React 项目迁移 Webpack Babel7的实现
Sep 12 Javascript
微信小程序单选radio及多选checkbox按钮用法示例
Apr 30 Javascript
JS FormData对象使用方法实例详解
Feb 12 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
德生1994机评
2021/03/02 无线电
php中取得URL的根域名的代码
2011/03/23 PHP
求PHP数组最大值,最小值的代码
2011/10/31 PHP
php结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
php+ajax无刷新上传图片实例代码
2015/11/17 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
PHP快速排序算法实现的原理及代码详解
2019/04/03 PHP
thinkphp5 模型实例化获得数据对象的教程
2019/10/18 PHP
js 分页全选或反选标识实现代码
2011/08/09 Javascript
HTML上传控件取消选择
2013/03/06 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
JavaScript对象之深度克隆介绍
2014/12/08 Javascript
使用jQuery和Bootstrap实现多层、自适应模态窗口
2014/12/22 Javascript
在JavaScript应用中使用RequireJS来实现延迟加载
2015/07/01 Javascript
javascript中setAttribute()函数使用方法及兼容性
2015/07/19 Javascript
快速获取/设置iframe内对象元素的几种js实现方法
2016/05/20 Javascript
json对象与数组以及转换成js对象的简单实现方法
2016/06/24 Javascript
使用jsonp实现跨域获取数据实例讲解
2016/12/25 Javascript
angular动态删除ng-repaeat添加的dom节点的方法
2017/07/20 Javascript
vue 使用自定义指令实现表单校验的方法
2018/08/28 Javascript
javascript面向对象三大特征之继承实例详解
2019/07/24 Javascript
vue中实现回车键登录功能
2020/02/19 Javascript
vue 实现一个简单的全局调用弹窗案例
2020/09/10 Javascript
[01:39](回顾)各路豪强针锋相对,几经鏖战四强产生
2014/07/01 DOTA
详解Python函数作用域的LEGB顺序
2016/05/14 Python
python中将\\uxxxx转换为Unicode字符串的方法
2018/09/06 Python
Python设计模式之原型模式实例详解
2019/01/18 Python
基于python二叉树的构造和打印例子
2019/08/09 Python
多个python文件调用logging模块报错误
2020/02/12 Python
解决Python数据可视化中文部分显示方块问题
2020/05/16 Python
基于python 将列表作为参数传入函数时的测试与理解
2020/06/05 Python
Pandas对每个分组应用apply函数的实现
2020/12/13 Python
行政管理人员精品工作推荐信
2013/11/04 职场文书
《猫》教学反思
2014/02/26 职场文书
小学运动会班级口号
2014/06/09 职场文书
社会实践活动总结格式
2015/05/11 职场文书