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()
: 獲取元素到頁面可視區的尺寸、距離