首页 > 代码库 > 拖拽--吸附
拖拽--吸附
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>拖拽--吸附效果</title> 6 <style> 7 #div1{ 8 width: 100px; 9 height: 100px; 10 background: red; 11 position: absolute; 12 } 13 #div2{ 14 width: 700px; 15 height: 500px; 16 background: #ccc; 17 position: relative; 18 } 19 #div1:hover{ 20 cursor: pointer; 21 } 22 </style> 23 </head> 24 <body> 25 <div id="div2"> 26 <div id="div1"></div> 27 </div> 28 <script> 29 var oDiv = document.getElementById(‘div1‘); 30 var oDiv2 = document.getElementById(‘div2‘); 31 32 var disX = 0; //鼠标的横向距离 33 var disY = 0; //鼠标的纵向距离 34 35 oDiv.onmousedown = function(ev){ 36 var oEvent = ev || event; 37 disX = oEvent.clientX - oDiv.offsetLeft; 38 disY = oEvent.clientY - oDiv.offsetTop; 39 40 document.onmousemove = function(ev){ 41 var oEvent = ev || event; 42 var l = oEvent.clientX - disX; //div1的横向距离 43 var t = oEvent.clientY - disY; ////div1的纵向距离 44 45 if(l<50){ //div1从div2左边被拖出去 吸附效果 46 l = 0; 47 }else if(l > oDiv2.offsetWidth - oDiv.offsetWidth){ 48 l = oDiv2.offsetWidth - oDiv.offsetWidth; 49 } 50 if(t<50){ //div1从div2上边被拖出去 51 t = 0; 52 }else if(t>oDiv2.offsetHeight - oDiv.offsetHeight){ 53 t = oDiv2.offsetHeight - oDiv.offsetHeight; 54 } 55 56 //根据最新的鼠标坐标来确定div的坐标 57 oDiv.style.left = l + ‘px‘; 58 oDiv.style.top = t + ‘px‘; 59 } 60 61 document.onmouseup = function(ev){ 62 document.onmousemove = null; 63 document.onmouseup = null; 64 } 65 66 //解决火狐拖拽的bug,取消默认事件 67 return false; 68 } 69 </script> 70 </body> 71 </html>
拖拽--吸附
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。