使用javaScript实现鼠标拖拽事件

 更新时间:2020年04月03日 08:31:48   作者:Z_唐  
这篇文章主要为大家详细介绍了使用javaScript实现鼠标拖拽事件的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Bootstrap精简教程中秋大放送

    Bootstrap精简教程中秋大放送

    Bootstrap精简教程中秋大放送,这篇文章主要为大家分享了最基础的Bootstrap学习教程,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • bootstrap下拉框动态赋值方法

    bootstrap下拉框动态赋值方法

    今天小编就为大家分享一篇bootstrap下拉框动态赋值方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • JS高级调试技巧:捕获和分析 JavaScript Error详解

    JS高级调试技巧:捕获和分析 JavaScript Error详解

    前端工程师都知道 JavaScript 有基本的异常处理能力。我们可以 throw new Error(),浏览器也会在我们调用 API 出错时抛出异常。但估计绝大多数前端工程师都没考虑过收集这些异常信息
    2014-03-03
  • 一些常用的JavaScript函数(json)附详细说明

    一些常用的JavaScript函数(json)附详细说明

    一些常用的JavaScript函数(json)附详细说明,学习js的朋友可以参考下。
    2011-05-05
  • uni-app实现页面通信EventChannel的操作方法

    uni-app实现页面通信EventChannel的操作方法

    使用了EventBus的方法实现不同页面组件之间的一个通信,在uni-app中,我们也可以使用uni-app API,uni.navigateTo来实现页面间的通信,这篇文章主要介绍了uni-app实现页面通信EventChannel的操作方法,需要的朋友可以参考下
    2024-05-05
  • Typescript实现栈的方法示例

    Typescript实现栈的方法示例

    本文主要介绍了Typescript实现栈的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • Javascript Function.prototype.bind详细分析

    Javascript Function.prototype.bind详细分析

    这篇文章主要介绍了Javascript Function.prototype.bind详细分析的相关资料,需要的朋友可以参考下
    2016-12-12
  • 对js中回调函数的一些看法

    对js中回调函数的一些看法

    下面小编就为大家带来一篇对js中回调函数的一些看法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • 原生javascript实现获取指定元素下所有后代元素的方法

    原生javascript实现获取指定元素下所有后代元素的方法

    这篇文章主要介绍了原生javascript实现获取指定元素下所有后代元素的方法,在进行web程序设计时是非常实用的技巧,需要的朋友可以参考下
    2014-10-10
  • JavaScript canvas实现流星特效

    JavaScript canvas实现流星特效

    这篇文章主要为大家详细介绍了JavaScript canvas实现流星特效,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05

最新评论