JS中 PageX、clientX、offsetX、layerX、offsetTop、offsetWidth各位置属性详解 |
您所在的位置:网站首页 › 鼠标移动事件相对于父元素的定位 › JS中 PageX、clientX、offsetX、layerX、offsetTop、offsetWidth各位置属性详解 |
一.PageX和clientX
PageX:鼠标在页面上的位置,从页面左上角开始,即是以页面为参考点,不随滑动条移动而变化 pageX = 200 clientX:鼠标在页面上可视区域的位置,从浏览器可视区域左上角开始, 即是以浏览器滑动条此刻的滑动到的位置为参考点,随滑动条移而变化. 比如原先高度是200,滚动条向下滑动100的距离,那么此时clientX = 100 二.screenXscreenX:鼠标点击位置相对于电脑屏幕左上角的水平偏移量 三.offsetX和layerXoffsetX:鼠标点击位置相对于触发事件对象的水平距离 layerX:鼠标相比较于当前坐标系的位置,即如果触发元素没有设置绝对定位或相对定位,以页面为参考点,如果有,将改变参考坐标系,从触发元素盒子模型的border区域的左上角为参考点 也就是当触发元素设置了相对或者绝对定位后。 四。offsetTopoffsetTop:当前div位于父级的距离(前提得有定位),如果存在父级position: relative; 五。offsetWidthoffsetWidth: 不包括margin的距离,只有 border + content + padding DOCTYPE html> Document div{ width: 100px; height: 100px; border: 10px solid red; margin: 50px; padding: 50px; } const divElm = document.getElementById('div1') divElm.onmousemove = (e) => { const pageY = e.pageY; // 相对于页面的距离,带有滚动条的距离 const clientY = e.clientY; // 相对于窗口的距离,不会带有滚动条的距离,滚动条变化,距离就变了 const offsetTop = e.target.offsetTop; // 当前div位于父级的距离(前提得有定位),如果存在父级position: relative; const offsetY = e.offsetY; // 当前鼠标位于div的距离 const offsetWidth = divElm.offsetWidth; // 不包括margin的距离,只有 border + content + padding console.log('pageY=' + pageY); console.log('clientY=' + clientY); console.log('offsetTop=' + offsetTop); console.log('offsetY=' + offsetY); console.log('offsetWidth=' + offsetWidth); } |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |