使用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入门·图片对象(无刷新变换图片)\滚动图像
Oct 01 Javascript
通过javascript的匿名函数来分析几段简单有趣的代码
Jun 29 Javascript
基于JQuery的访问WebService的代码(可访问Java[Xfire])
Nov 19 Javascript
Prototype的Class.create函数解析
Sep 22 Javascript
基于JQuery的列表拖动排序实现代码
Oct 01 Javascript
IE 下Enter提交表单存在重复提交问题的解决方法
May 04 Javascript
Node.js批量给图片加水印的方法
Nov 15 Javascript
JS中如何实现复选框全选功能
Dec 19 Javascript
Bootstrap警告框(Alert)插件使用方法
Mar 21 Javascript
详解浏览器缓存和webpack缓存配置
Jul 06 Javascript
小程序调用微信支付的方法
Sep 26 Javascript
全面解析Vue中的$nextTick
Dec 24 Vue.js
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
PHP4中实现动态代理
2006/10/09 PHP
PHP4在Windows2000下的安装
2006/10/09 PHP
php中sprintf与printf函数用法区别解析
2014/02/17 PHP
PHP fastcgi模式上传大文件(大约有300多K)报错
2014/09/28 PHP
php使用标签替换的方式生成静态页面
2015/05/21 PHP
CI框架整合smarty步骤详解
2016/05/19 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
jQuery 技巧小结
2010/04/02 Javascript
JQuery弹出层示例可自定义
2014/05/19 Javascript
让JavaScript的Alert弹出框失效的方法禁止弹出警告框
2014/09/03 Javascript
jQuery圆形统计图开发实例
2015/01/04 Javascript
早该知道的7个JavaScript技巧
2016/06/21 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
2016/10/15 Javascript
jQuery图片加载显示loading效果
2016/11/04 Javascript
JS实现的图片预览插件与用法示例【不上传图片】
2016/11/25 Javascript
JavaScript 过滤关键字
2017/03/20 Javascript
详解webpack介绍&amp;安装&amp;常用命令
2017/06/29 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
2018/03/08 Javascript
关于AngularJS中ng-repeat不更新视图的解决方法
2018/09/30 Javascript
使用vue实现一个电子签名组件的示例代码
2020/01/06 Javascript
微信小程序实现上传多张图片、删除图片
2020/07/29 Javascript
使用Mock.js生成前端测试数据
2020/12/13 Javascript
[02:07]2017国际邀请赛中国区预选赛直邀战队前瞻
2017/06/23 DOTA
Python for Informatics 第11章之正则表达式(二)
2016/04/21 Python
python文本数据相似度的度量
2018/03/12 Python
python的pytest框架之命令行参数详解(下)
2019/06/27 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
2019/07/22 Python
解决Mac下使用python的坑
2019/08/13 Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
2020/01/13 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
2020/09/02 Python
Python抖音快手代码舞(字符舞)的实现方法
2021/02/07 Python
意大利制造的男鞋和女鞋:SCAROSSO
2018/03/07 全球购物
九年级语文教学反思
2014/02/04 职场文书
2014国庆节演讲稿:祖国在我心中(400字)
2014/09/25 职场文书
关爱留守儿童主题班会
2015/08/13 职场文书
先进个人主要事迹怎么写
2015/11/04 职场文书