在最近的移动端学习中,常常要计算移动位置,之前一直不太明白这些都表示什么意思。所以今天特地来总结,以备不时之需。这些是目前日常用的,还有没写的边用边补充。
元素位置相关
-----------------------------------------------------------------------------------------------------------------------------------------
1. style.width 返回的是字符串,如28px,offsetWidth返回的是数值28。
2. style.width/style.height与scrollWidth/scrollHeight是可读写的属性,clientWidth/clientHeight与offsetWidth/offsetHeight是只读属性。
3. style.width的值需要事先定义,否则取到的值为空。而且必须要定义在html里(内联样式),如果定义在css里,style.height的值仍然为空,但元素偏移有效;而offsetWidth则仍能取到。
鼠标事件相关
-----------------------------------------------------------------------------------------------------------------------------------------
<!DOCTYPE html> <html lang="ch"> <head> <meta charset="UTF-8"> <title>页面位置相关</title> <style> *{ padding: 0; margin: 0; } body{ width: 2000px; height: 1000px; } #app{ height: 300px; width: 300px; background: pink; border: 10px solid #000; padding: 100px; position: relative; margin: 50px auto; } #wraper{ position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: auto; height: 150px; width: 150px; padding: 50px; background: green; border: 10px solid #000; } </style> </head> <body> <div id="app"> <div id="wraper"></div> </div> </body> <script> (function(){ //获取相关元素 var appNode = document.getElementById(‘app‘); var wraperNode = document.getElementById(‘wraper‘); console.log(wraperNode.offsetWidth,wraperNode.offsetHeight); //此时页面返回宽/高度:270px,是border-box的宽/高度; console.log(wraperNode.clientWidth,wraperNode.clientHeight); //此时页面返回宽/高度:250px,是padding-box的宽/高度; console.log(wraperNode.scrollWidth,wraperNode.scrollHeight ); console.log(wraperNode.offsetTop,wraperNode.offsetLeft); //上层父元素有定位,返回:115px;上层父元素无定位:参照视口 /*****************************************************/ document.addEventListener(‘click‘,function(){ console.log(event.clientX,event.clientY); //鼠标指针相对于浏览器可视区域X轴和Y轴的坐标; console.log(event.pageX,event.pageY); //鼠标指针相对于浏览器可视区域X轴和Y轴的坐标(会随着滚动条的滚动而发生变化); console.log(event.screenX,event.screenY); //鼠标指针相对于整个显示器左上角X轴和Y轴的坐标位置,会随着浏览器的变化导致鼠标指针的位置发生变化(例如:浏览器的缩放等); }); })(); </script> </html>
javascript中的位置相关 offsetwidth,offsetheight等
原文:https://www.cnblogs.com/Zh-J/p/11182732.html