转:JavaScript鼠标拖拽事件详解

html代码:

1 <div id="box"></div>

css代码:

 1  *{
 2  margin:0;
 3  padding:0;
 4  }
 5  #box{
 6  width: 200px;
 7  height: 200px;
 8  background: url("./img/aio.png") no-repeat;
 9  background-size: cover;
10  position: absolute;/*定位元素 父级元素window就是初始包含块*/
11  top:0;
12  left:0;
13  }

js代码:

 1 //获取标签
 2  var box=document.getElementById("box");
 3  var body=document.body;
 4  var x,y;//全局作用域
 5  //鼠标按下事件 0级
 6  box.onmousedown=function(e) {//传入形参e
 7  var mx=e.clientX;//鼠标距离浏览器左
 8  var my=e.clientY;//鼠标距离浏览器上
 9  var bx=box.offsetLeft;//盒子距离浏览器左
10  var by=box.offsetTop;//盒子距离浏览器上
11  x=mx-bx;//实际盒子距离的浏览器左
12  y=my-by;//实际盒子距离的浏览器上
13  //鼠标移动事件 0级
14  body.onmousemove=function(e) {//拿到全局x、y、
15   //获取当前鼠标移动到的坐标点
16   var mx=e.clientX;
17   var my=e.clientY;
18   //盒子距离浏览器
19   box.style.left=mx-x +"px";
20   box.style.top=my-y +"px";
21  
22  };
23  //鼠标弹起事件(松开)
24  box.onmouseup=function(e) {
25   body.onmousemove=null;//不做任何操作//dom0级事件解除事件绑定
26   //获取当前鼠标移动到的坐标点
27   var mx=e.clientX;
28   var my=e.clientY;
29   //盒子距离浏览器
30   box.style.left=mx-x +"px";
31   box.style.top=my-y +"px";
32  }
33  };

 

 

文章转载自:https://www.jb51.net/article/184047.htm

posted @ 2020-06-03 16:24  傅丹辰cds  阅读(663)  评论(0编辑  收藏  举报