clientWidth & clientHeight
: 获取当前元素可视区的宽高(内容的宽高+左右/上下padding)clientTop & clientLeft
: 获取上/左边框的宽度内容和是否有溢出无关(和是否设置了overflow: hidden无关,就是咱们本身及设定的内容的宽高padding浏览器
offsetWidth & offsetHeight
: 内容的宽高+左右/上下padding+左右/上下border(和内容是否溢出无关)offsetParent
: 当前盒子的父级参照物spa
offsetTop/offsetLeft
:3d
图示:code
outer.offsetParent //=>bodycdn
inner.offsetParent //=>body对象
center.offsetParent //=>bodyblog
参照物能够改变:文档
zIndex
,可是这个属性只对定位有做用),因此改变元素的定位(position:relative/absolute/fixed
),能够改变其父级参照物例如上面结构中,get
若是给outer
设置position:relative
以后(把outer
脱离原有的平面,独立出一个新的平面,后代元素的父级参照物都会以他为参考)it
inner.offsetParent //=>outer
center.offsetParent //=>outer
outer.offsetParent //=> body
若是给inner
设置position:absolute
以后
center.offsetParent //=>inner
inner.offsetParent //=>outer
outer.offsetParent //=>body
scrollWidth & scrollHeight
: 真实内容的宽高+左/上padding
overflow: hidden
,都对结果有影响,因此这个值只作参考scrollTop/scrollLeft
: 滚动条卷曲的宽度/高度
scrollTop/scrollLeft
是可读可写属性,其他都是只读属性document.documentElement.scrollHeight - document.documentElement.clientHeight
元素.style.xxx
:只能获取全部写在元素行内上的样式(不写在行内上,获取不到)window.getComputedStyle([元素],null)
获取当前元素全部通过浏览器计算的样式:只要当样式前元素能够在页面中展示(或者浏览器渲染它了,那么他的样式都是被浏览器计算过的)
2.1 无论当前样式写在哪
2.2 无论当前样式写没写(浏览器会给元素设置一些默认样式)
复制代码
获取当前元素一屏内(可视区域)的宽度和高度
document.documentElement.clientWidth || document.body.clientWidth
document.documentElement.clientHeight || document.body.clientHeight
获取可视区的宽高(window对象):只读属性
window.innerWidth
window.innerHeight
document.documentElement.clientWidth
与 window.innerWidth
的区别图示高度同理
获取当前页面的真实宽高,包含溢出部分
document.documentElement.scrollWidth || document.body.scrollWidth
document.documentElement.scrollHeight || document.body.scrollHeight
图示: document.documentElement.scrollHeight
与 document.documentElement.clientHeight
的区别
window.pageXOffset
: 滚动条到左边的距离(X轴)
window.pageYOffset
: 滚动条到顶部的距离(Y轴)
在IE低版本下
document.documentElement.scrollLeft
滚动条到左边的距离(X轴)document.documentElement.scrollTop
滚动条到顶部的距离(Y轴)window.scrollTo(x,y)
getBoundingClientRect()
: 获取元素到页面可视区的尺寸、距离