javascript——限制范围的拖拽
2015-03-31 14:19
190 查看
CSS部分:
HTML部分:
JS部分:
修改if条件的L/T小于号后面的数值可以使它有种磁性吸附的感觉。
#div1 {width: 100px; height: 100px; background: red; position: absolute;} #img1 { position: absolute;}
HTML部分:
<div id="div1"></div> <img src="img/1.jpg" id="img1" />
JS部分:
window.onload = function(){ // 获取相关元素 var oDiv = document.getElementById('div1'); var oImg = document.getElementById('img1'); // 函数调用 drag(oDiv); drag(oImg); // drag函数封装 function drag(obj){ // 拖拽第一步:鼠标按下时触发 obj.onmousedown = function(ev){ // 获取事件对象 var ev = ev || event; // 获取鼠标按下时的坐标位置 var disX = ev.clientX - this.offsetLeft; var disY = ev.clientY - this.offsetTop; // 判断获取捕获 if(obj.setCapture){ obj.setCapture(); } // 拖拽第二步:鼠标移动时触发 document.onmousemove = function(ev){ // 获取事件对象 var ev = ev || event; // 获取当前对象距离X/Y轴的距离 var L = ev.clientX - disX; var T = ev.clientY - disY; // 判断是否超出左边界 if(L < 0 ){ L = 0; }else if( L > document.documentElement.clientWidth - obj.offsetWidth){ L = document.documentElement.clientWidth - obj.offsetWidth; } // 判断是否超出上边界 if(T < 0){ T = 0; }else if( T > document.documentElement.clientHeight - obj.offsetHeight){ T = document.documentElement.clientHeight - obj.offsetHeight; } // 然后获取当前对象距离左边、上边的距离 obj.style.left = L + 'px'; obj.style.top = T + 'px'; }; // 拖拽第三步:鼠标释放时触发 document.onmouseup = function(){ document.onmousemove = document.onmouseup = null; // 判断释放捕获 if(obj.releaseCapture){ obj.releaseCapture(); } }; // 阻止默认事件 return false; }; }; };
修改if条件的L/T小于号后面的数值可以使它有种磁性吸附的感觉。
相关文章推荐
- JavaScript 事件 -- 默认行为,限制范围拖拽
- JavaScript限制在客户区可见范围的拖拽(解决scrollLeft和scrollTop的问题)(2)
- 理解事件捕获。在限制范围内拖拽div+吸附+事件捕获
- 改进的table单元格拖拽,可限制能拖动的连续单元格范围
- javascript 鼠标拖动层。限制拖动范围
- 原生js 封装 拖拽限制范围
- 面向对象继承-限制范围的拖拽
- 拖拽的基本函数(已有限制范围和修复浏览器默认行为以及磁性吸附、碰撞检测、改变层大小、模拟滚动条)
- 限制范围的拖拽的简单实现及封装(含磁性吸附)
- JavaScript拖拽(三):限定范围拖拽及应用自定义滚动条
- JavaScript限定范围拖拽及自定义滚动
- iOS两种方法限制拖拽手势的范围
- JavaScript限定范围拖拽及自定义滚动条应用(3)
- 面向对象改成拖拽和通过继承来达到限制范围拖拽
- JS利用 Sea.js 实现模块化:拖拽、缩放及范围限制
- 限制范围的拖拽
- JavaScript拖拽(二):限制在客户区的拖拽(解决scrollLeft和scrollTop)
- javascript实现拖拽功能
- Javascript实现网页中元素的拖拽
- 怎么用javascript进行拖拽第1/2页