使用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 相关文章推荐
jquery html动态生成select标签出问题的解决方法
Nov 20 Javascript
javascript计时器事件使用详解
Jan 07 Javascript
JS中多种方式创建对象详解
Mar 22 Javascript
Bootstrap表格和栅格分页实例详解
May 20 Javascript
极力推荐10个短小实用的JavaScript代码段
Aug 03 Javascript
Node.js中如何合并两个复杂对象详解
Dec 31 Javascript
如何解决vue与传统jquery插件冲突
Mar 20 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
May 17 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
May 22 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
Aug 10 Javascript
使用zrender.js绘制体温单效果
Oct 31 Javascript
React更新渲染原理深入分析
Dec 24 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
PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
2012/01/16 PHP
PHP中$_SERVER的详细参数与说明介绍
2013/10/26 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
2016/06/20 PHP
PHP使用pdo实现事务处理操作示例
2018/09/05 PHP
ThinkPHP5.0框架结合Swoole开发实现WebSocket在线聊天案例详解
2019/04/02 PHP
Prototype 学习 Prototype对象
2009/07/12 Javascript
修改file按钮的默认样式实现代码
2013/04/23 Javascript
js实现继承的5种方式
2015/12/01 Javascript
使用Jasmine和Karma对AngularJS页面程序进行测试
2016/03/05 Javascript
js+html5实现canvas绘制网页时钟的方法
2016/05/21 Javascript
关于session和cookie的简单理解
2016/06/08 Javascript
angularjs性能优化的方法
2018/09/05 Javascript
微信小程序实现联动选择器
2019/02/15 Javascript
js实现移动端吸顶效果
2020/01/08 Javascript
node.js中path路径模块的使用方法实例分析
2020/02/13 Javascript
你准备好迎接vue3.0了吗
2020/04/28 Javascript
一键搞定python连接mysql驱动有关问题(windows版本)
2016/04/23 Python
Python中用字符串调用函数或方法示例代码
2017/08/04 Python
python-docx修改已存在的Word文档的表格的字体格式方法
2018/05/08 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
python标准库os库的函数介绍
2020/02/12 Python
解决python执行较大excel文件openpyxl慢问题
2020/05/15 Python
Python爬虫之Selenium实现关闭浏览器
2020/12/04 Python
python爬虫利用代理池更换IP的方法步骤
2021/02/21 Python
HTML5 Web存储方式的localStorage和sessionStorage进行数据本地存储案例应用
2012/12/09 HTML / CSS
Doyoueven官网:澳大利亚健身服饰和配饰品牌
2019/03/24 全球购物
如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
2012/02/15 面试题
质量工程师岗位职责
2013/11/16 职场文书
青年文明号事迹材料
2014/01/18 职场文书
五分钟演讲稿
2014/04/30 职场文书
小学先进集体事迹材料
2014/05/31 职场文书
2014年征兵标语
2014/06/20 职场文书
大学社团招新的通讯稿
2014/09/10 职场文书
工程部经理岗位职责
2015/02/02 职场文书
个人工作年终总结
2015/03/09 职场文书
MySQL事务操作的四大特性以及并发事务问题
2022/04/12 MySQL