JS基礎篇-- body.scrollTop與documentElement.scrollTop

獲取當前頁面滾動條縱座標的位置:document.body.scrollTop與document.documentElement.scrollTophtml

獲取當前頁面滾動條橫座標的位置:document.body.scrollLeft與document.documentElement.scrollLeftchrome

1.各瀏覽器下 scrollTop的差別:

IE6/7/8:
可使用 document.documentElement.scrollTop
IE9及以上:
可使用window.pageYOffset或者document.documentElement.scrollTop
Safari:
safari: window.pageYOffset 與document.body.scrollTop均可以;
Firefox:
火狐等等相對標準些的瀏覽器就省心多了,直接用window.pageYOffset 或者 document.documentElement.scrollTop
Chrome:
谷歌瀏覽器只認識document.body.scrollTop;
注:標準瀏覽器是隻認識documentElement.scrollTop的,但chrome雖然我感受比firefox還標準,但卻不認識這個,在有文檔聲明時,chrome也只認識document.body.scrollTop.
因爲在不一樣狀況下,document.body.scrollTop與document.documentElement.scrollTop都有可能取不到值,那到底網頁的scrollTop值怎麼獲得呢?難道又要用JavaScript進行判斷?瀏覽器

其實沒必要。由於document.body.scrollTop與document.documentElement.scrollTop二者有個特色,就是同時只會有一個值生效。好比document.body.scrollTop能取到值的時候,document.documentElement.scrollTop就會始終爲0;反之亦然。因此,若是要獲得網頁的真正的scrollTop值,若是不考慮safari,能夠這樣:
var sTop=document.body.scrollTop+document.documentElement.scrollTop;
這兩個值總會有一個恆爲0,因此不用擔憂會對真正的scrollTop形成影響。一點小技巧,但很實用。.net

2.獲取scrollTop的值

可使用window.pageYoffset
Window pageXOffsetpageYOffset 屬性
其定義:pageXOffset 設置或返回當前頁面相對於窗口顯示區左上角的 X 位置。pageYOffset 設置或返回當前頁面相對於窗口顯示區左上角的 Y 位置。firefox

全部主流瀏覽器都支持 pageXOffset 和 pageYOffset 屬性。
注意: IE 8 及 更早 IE 版本不支持該屬性,但可使用 "document.documentElement.scrollLeft" 和 "document.documentElement.scrollTop" 屬性 。
因爲谷歌兼容問題,可使用document.body.scrollLeftdocument.body.scrollTop 或者window.pageXoffset與window.pageYoffset。code

總結

var heightTop = document.documentElement.scrollTop || document.body.scrollTop;
console.log(heightTop);

參考地址:http://blog.csdn.net/lploveme...
http://www.runoob.com/jsref/p...htm

相關文章
相關標籤/搜索