您好,欢迎访问一九零五行业门户网

JavaScript中鼠标的拖动事件

这篇文章主要讲了javascript中鼠标的拖动事件,感兴趣的朋友可以参考一下,希望可以帮助到你!
第一步,定义被拖放的元素为绝对定位或者相对定位
第二部,清楚几个坐标的概念:按下鼠标时指针坐标(event.pagex和event.pagey),松开鼠标时指针坐标,拖放元素的原始坐标,拖放后元素的坐标
<!doctype html><html><head><meta charset="utf-8"><title></title><style type="text/css">#box{    position:absolute;    width:200px;    height:200px;    overflow:hidden;    padding:4px;    border:solid 4px #59f182;}#box img {width:100%;}</style><script></script></head><body><p id="box" ><img src="images/bg.jpg" /></p><script>// 初始化拖放对象var box = document.getelementbyid(box); // 获取页面中被拖放元素的引用指针box.style.position = absolute; // 绝对定位// 初始化变量,标准化事件对象var mx, my, ox, oy;  // 定义备用变量function e(event){  // 定义事件对象标准化函数   if( ! event){  // 兼容ie浏览器      event = window.event;      event.target = event.srcelement;      event.layerx = event.offsetx;      event.layery = event.offsety;   }   event.mx = event.pagex || event.clientx + document.body.scrollleft;  // 计算鼠标指针的x轴距离   event.my = event.pagey || event.clienty + document.body.scrolltop;  // 计算鼠标指针的y轴距离   return event;  // 返回标准化的事件对象}// 定义鼠标事件处理函数document.onmousedown = function(event){  // 按下鼠标时,初始化处理   event = e(event);  // 获取标准事件对象   o = event.target;  // 获取当前拖放的元素   ox = parseint(o.offsetleft);  // 拖放元素的x轴坐标   oy = parseint(o.offsettop);  // 拖放元素的y轴坐标   mx = event.mx;  // 按下鼠标指针的x轴坐标   my = event.my;  // 按下鼠标指针的y轴坐标   document.onmousemove = move;  // 注册鼠标移动事件处理函数   document.onmouseup = stop;  // 注册松开鼠标事件处理函数}function move(event){  // 鼠标移动处理函数   event = e(event);   o.style.left = ox + event.mx - mx  + px; // 定义拖动元素的x轴距离   o.style.top = oy + event.my - my + px; // 定义拖动元素的y轴距离}function stop(event){  // 松开鼠标处理函数   event = e(event);   ox = parseint(o.offsetleft);  // 记录拖放元素的x轴坐标   oy = parseint(o.offsettop);  // 记录拖放元素的y轴坐标   mx = event.mx ;  // 记录鼠标指针的x轴坐标   my = event.my ;  // 记录鼠标指针的y轴坐标   o = document.onmousemove = document.onmouseup = null;  // 释放所有操作对象}</script></body></html>
更多相关教程请访问 javascript视频教程
其它类似信息

推荐信息