时间:2021-05-26
两个对象:div1 和 div2,其中div1是div2的父元素,div2只能在div1的范围内拖拽
图中,红点是鼠标的位置,两个绿色箭头相减的结果就是disX,最后oEvent.clientX - disX 就是绿色箭头的部分,这个长度就是判断是否“出格”的依据,也就是这个短的绿色箭头范围应该在0 ~ div2.offsetWidth - div1.offsetWidth之间!
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>客户区可见范围限制拖拽</title> <style type="text/css"> * { padding: 0; margin: 0; } #div1 { width: 500px; height: 500px; background: orange; position: relative; left: 100px; top: 30px; } #div2 { width: 100px; height: 100px; background: black; position: absolute; border: 1px solid blue; } </style></head><body> <div id="div1"> <div id="div2"></div> </div> <script type="text/javascript"> var oDiv1 = document.getElementById('div1'); var oDiv2 = document.getElementById('div2'); function getStyle(obj, attr) { if (obj.currentStyle) { return obj.currentStyle[attr]; } else { return getComputedStyle(obj, null)[attr]; } } oDiv2.onmousedown = function(ev) { var oEvent = ev || event; // var disX = oEvent.clientX - oDiv2.offsetLeft; // var disY = oEvent.clientY - oDiv2.offsetTop; var disX = oEvent.clientX - parseInt(getStyle(oDiv2, 'left')); var disY = oEvent.clientY - parseInt(getStyle(oDiv2, 'top')); document.onmousemove = function(ev) { var oEvent = ev || event; var l = oEvent.clientX - disX; var t = oEvent.clientY - disY; if (l < 0) { l = 0; } else if (l > oDiv1.offsetWidth - oDiv2.offsetWidth) { l = oDiv1.offsetWidth - oDiv2.offsetWidth; } if (t < 0) { t = 0; } else if (t > oDiv1.offsetHeight - oDiv2.offsetHeight) { t = oDiv1.offsetHeight - oDiv2.offsetHeight; } oDiv2.style.left = l + 'px'; oDiv2.style.top = t + 'px'; }; document.onmouseup = function() { document.onmousemove = null;//如果不取消,鼠标弹起div依旧会随着鼠标移动 document.onmouseup = null; }; }; </script></body></html>基于上述原理,我们来做一个自定义滚动条,通过拖拽滚动条的位置来控制另一个对象的大小,比如一幅图。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一、实现对ScrollViewer样式的自定义主要包括:1、滚动条宽度设置2、滚动条颜色3、滚动条圆角4、滚动条拉动时的效果mouseover二、实现效果:三、
本文实例讲述了JS实现的页面自定义滚动条效果。分享给大家供大家参考,具体如下:这里演示网页上用的滚动条效果,是一个自定义的滚动条代码,除了上下两个箭头以外,滚动
今天为大家分享一下我自己制作的浏览器滚动条,我们知道用css来自定义滚动条也是挺好的方式,css虽然能够改变chrome浏览器的滚动条样式可以自定义,css也能
可直接使用的js滚动条,先看看效果图:代码如下自定义滚动条滚动条*{margin:0;padding:0;}#mainBox{width:400px;heigh
本文实例为大家分享了js自定义滚动条的实现的具体代码,供大家参考,具体内容如下描述:自定义滚动条的实现效果:实现:*{margin:0;padding:0;}h