使用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中 For, While与递归的用法
May 07 Javascript
js与jquery获取父级元素,子级元素,兄弟元素的实现方法
Jan 09 Javascript
jQuery 文本框得失焦点的简单实例
Feb 19 Javascript
js 获取input点选按钮的值的方法
Apr 14 Javascript
Js Jquery创建一个弹出层可加载一个页面
May 08 Javascript
IOS中safari下的select下拉菜单文字过长不换行的解决方法
Sep 26 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
Feb 22 Javascript
JavaScript中重名的函数与对象示例详析
Sep 28 Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
Oct 27 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
Aug 07 Javascript
vuex管理状态仓库使用详解
Jul 29 Javascript
JS异步宏队列微队列原理详解
Sep 09 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
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
PHP中substr函数字符串截取用法分析
2016/01/07 PHP
js左侧多级菜单动态的解决方案
2010/02/01 Javascript
浮动的div自适应居中显示的js代码
2013/12/23 Javascript
Javascript获取CSS伪元素属性的实现代码
2014/09/28 Javascript
js实现的后台左侧管理菜单代码
2015/09/11 Javascript
jQuery实现商品活动倒计时
2015/10/16 Javascript
浅析jQuery Mobile的初始化事件
2015/12/03 Javascript
浅谈JS中String()与 .toString()的区别
2016/10/20 Javascript
移动开发之自适应手机屏幕宽度
2016/11/23 Javascript
简单实现nodejs上传功能
2017/01/14 NodeJs
JS实现含有中文字符串的友好截取功能分析
2017/03/13 Javascript
VUE 更好的 ajax 上传处理 axios.js实现代码
2017/05/10 Javascript
详解node Async/Await 更好的异步编程解决方案
2018/05/10 Javascript
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
2018/08/30 Javascript
12个提高JavaScript技能的概念(小结)
2019/05/09 Javascript
Vue实战教程之仿肯德基宅急送App
2019/07/19 Javascript
12 种使用Vue 的最佳做法
2020/03/30 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
[42:52]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
python Django模板的使用方法(图文)
2013/11/04 Python
详解python上传文件和字符到PHP服务器
2017/11/24 Python
Go/Python/Erlang编程语言对比分析及示例代码
2018/04/23 Python
Python处理命令行参数模块optpars用法实例分析
2018/05/31 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
2018/06/13 Python
Python 实现域名解析为ip的方法
2019/02/14 Python
python 采用paramiko 远程执行命令及报错解决
2019/10/21 Python
python实现大战外星人小游戏实例代码
2019/12/26 Python
La Senza官网:北美顶尖性感内衣品牌
2018/08/03 全球购物
八年级数学教学反思
2014/01/31 职场文书
《桥》教学反思
2014/04/09 职场文书
领导班子整改措施
2014/10/24 职场文书
学术研讨会欢迎词
2015/01/26 职场文书
用python修改excel表某一列内容的操作方法
2021/06/11 Python
用Python实现屏幕截图详解
2022/01/22 Python