使用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 miscellanea -display data real time, using window.status
Jan 09 Javascript
基于OO的动画附加插件,可以实现弹跳、渐隐等动画效果 分享
Jun 24 Javascript
JavaScript动态插入script的基本思路及实现函数
Nov 11 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
Sep 17 Javascript
JavaScript循环遍历你会用哪些之小结篇
Sep 28 Javascript
js+html5 canvas实现ps钢笔抠图
Apr 28 Javascript
JS块级作用域和私有变量实例分析
May 11 Javascript
vue使用localStorage保存登录信息 适用于移动端、PC端
May 27 Javascript
Vue监听页面刷新和关闭功能
Jun 20 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
Feb 27 Javascript
TypeScript的安装、使用、自动编译的实现
Apr 10 Javascript
如何在VUE中使用vue-awesome-swiper
Jan 04 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
PHP程序员最常犯的11个MySQL错误小结
2010/11/20 PHP
详谈PHP程序Laravel 5框架的优化技巧
2016/07/18 PHP
老生常谈PHP面向对象之注册表模式
2017/05/26 PHP
PHP实现通过CURL上传文件功能示例
2018/05/30 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
2018/10/14 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
js 强制弹出窗口代码研究-又一款代码
2010/03/20 Javascript
JQury slideToggle闪烁问题及解决办法
2011/07/05 Javascript
jQuery对Select的操作大集合(收藏)
2013/12/28 Javascript
在JS中如何调用JSP中的变量
2014/01/22 Javascript
javascript删除html标签函数cIsHTML
2017/01/09 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
认识less和webstrom的less配置方法
2017/08/02 Javascript
基于vue的换肤功能的示例代码
2017/10/10 Javascript
了解ESlint和其相关操作小结
2018/05/21 Javascript
jQuery实现图片简单轮播功能示例
2018/08/13 jQuery
vue使用swiper.js重叠轮播组建样式
2019/11/14 Javascript
JavaScript canvas动画实现时钟效果
2020/02/10 Javascript
为python设置socket代理的方法
2015/01/14 Python
Python的组合模式与责任链模式编程示例
2016/02/02 Python
Linux 发邮件磁盘空间监控(python)
2016/04/23 Python
基于Python实现定时自动给微信好友发送天气预报
2018/10/25 Python
详解安装mitmproxy以及遇到的坑和简单用法
2019/01/21 Python
Python3-异步进程回调函数(callback())介绍
2020/05/02 Python
JupyterNotebook 输出窗口的显示效果调整实现
2020/09/22 Python
如何用Python编写一个电子考勤系统
2021/02/08 Python
html5菜单折纸效果
2014/04/22 HTML / CSS
美体小铺加拿大官方网站:The Body Shop加拿大
2016/10/30 全球购物
美国精品地毯网站:Boutique Rugs
2020/03/04 全球购物
JAVA软件工程师测试题
2014/07/25 面试题
搞笑车尾标语
2014/06/23 职场文书
2014年党风廉政建设工作总结
2014/11/19 职场文书
公司借条范本
2015/05/25 职场文书
跑出一片天观后感
2015/06/08 职场文书
小学中队委竞选稿
2015/11/20 职场文书
《平移和旋转》教学反思
2016/02/19 职场文书