scrollTop, offsetTop, pageYOffset, scrollY 的區別
scrollTop, offsetTop, pageYOffset, scrollY 的區別
scrollTop
DOM對象的scrollTop
用於獲取或者設置一個元素里滾動的距離(垂直)。例如:document.documentElement.scrollTop
可以獲取當前頁面的滾動高度,也可以獲取某個DOM元素的滾動距離,例如:document.querySelector('.content').scrollTop
,前提是.content
元素存在,並且可以滾動。
另外,scrollTop
還可以把滾動條移到指定位置,例如:
// 回到頂部
document.documentElement.scrollTop = 0;
offsetTop
DOM對象的offsetTop
與scrollTop
完全不同,它是上邊框相對於父元素上邊框的距離,一般是固定的,不隨滾動變化。
pageYOffset 和 scrollY
這兩個都能返回視窗滾動過的距離,相對來說,pageYOffset
兼容性更好,一般我們只用 pageYOffset
就行。但兩者都不兼容IE9以下,另外 scrollY
可以賦值,讓視窗滾動到指定位置。pageYOffser
和scrollY
都與scrollTop
不同,pageYOffset
和scrollY
都只存在window
對象里。
看下面等式:
document.documentElement.scrollTop === window.pageYOffset === scrollY