发现自己老搞混各种宽高,所以今天稍微整理一下:
网页高/宽
- 网页可见区域宽: document.body.clientWidth
- 网页可见区域高: document.body.clientHeight
- 网页可见区域宽: document.body.offsetWidth (包括边线的宽)
- 网页可见区域高: document.body.offsetHeight (包括边线的高)
- 网页正文全文宽: document.body.scrollWidth
- 网页正文全文高: document.body.scrollHeight
- 网页被卷去的高: document.body.scrollTop
- 网页被卷去的左: document.body.scrollLeft
- 网页正文部分上: window.screenTop
- 网页正文部分左: window.screenLeft
- 屏幕分辨率的高: window.screen.height
- 屏幕分辨率的宽: window.screen.width
- 屏幕可用工作区高度: window.screen.availHeight
- 屏幕可用工作区宽度: window.screen.availWidth
以上都是在W3C标准<!DOCTYPE html>
的情况下,如果在旧的标准下,或者比较早的浏览器斑斑下,各个浏览器获取的高度就会产生一些区别了,若需要兼容旧版本浏览器,需要用兼容性写法:
例如,网页可视区域大小:
1 | var w = document.documentElement.offsetWidth |
网页可见区域大小(包括边线) :
1 | var w=document.documentElement.scrollWidth |
网页正文全文大小:
1 | var w=document.documentElement.scrollWidth |
下面是一张元素的宽高获取展示图:
event对象宽/高
通过三张图,即可轻松了解offsetX, clientX, pageX, screenX, layerX, x的区别:
图解 event.offsetX,event.clientX,event.pageX,event.screenX属性
图解 event.layerX,event.layerY 属性
图解 event.x,event.y 属性
个人觉得 其实有 offsetX, clientX, pageX, screenX 这四个属性就够啦(反正我只记这四个~)。
完~