window.pageyoffset 被所有瀏覽器支援除了 ie 6, ie 7, ie 8, 不關doctype的事, 注ie9 開始支援此屬性。
window.scrolly 被firefox, google chrome , safari支援 不關doctype的事, 注ie9 不支援此屬性
在(quirk 模式)的時候 document.body.scrolltop 在 internet explorer, firefox, opera, google chrome safari 返回正確的值。
在(quirk 模式)的時候 document.documentelement.scrolltop 永遠是零
非quirk模式的時候 document.documentelement.scrolltop internet explorer, firefox and opera 返回正確的值 但是在 google chrome ,safari 中永遠是零
特整理乙個**如下
非quirk模式
ie6 7 8
ie9firefox
opera
chrome
safari
scrolly
undefined
undefined
正確正確
正確正確
pageyoffset
undefined
正確正確
正確正確
正確body.scrolltop00
00正確正確
documentelement.scrolltop
正確正確
正確正確00
quirk 模式
ie6 7 8
ie9firefox
opera
chrome
safari
scrolly
undefined
undefined
正確正確
正確正確
pageyoffset
undefined
正確正確
正確正確
正確body.scrolltop
正確正確
正確正確
正確正確
documentelement.scrolltop0正確
0000
以上在win7環境下測試
可以看出是非常凌亂的
只在quirk模式下, body.scrolltop是被所有都支援的
所以這個表大家也不用 也沒有必要去記, 只要記住一條
if(window.pageyoffset)else if(document.documentelement.scrolltop )else if(document.body.scrolltop){//ie678 的quirk模式
原則是看pageyoffset 然後看documentelement.scrolltop, 最後是document.body.scrolltop
當然 也可以直接scrolltop 而不使用pageyoffset
以下是mdn 提供的相容性**
scrolltop = (((t = document.documentelement) || (t = document.body.parentnode)) && typeof t.scrolltop == 『number』 ? t : document.body).scrolltop
各瀏覽器下 scrollTop的差異
1 各瀏覽器下 scrolltop的差異 ie6 7 8 對於沒有doctype宣告的頁面裡可以使用document.body.scrolltop來獲取 scrolltop高度 對於有doctype宣告的頁面則可以使用document.documentelement.scrolltop safari...
各瀏覽器下 scrollTop的差異
1 各瀏覽器下 scrolltop的差異 ie6 7 8 對於沒有doctype宣告的頁面裡可以使用 document.body.scrolltop 來獲取 scrolltop高度 對於有doctype宣告的頁面則可以使用 document.documentelement.scrolltop saf...
獲取scrollTop相容各瀏覽器的方法,以及繫結
window unbind scroll bind scroll function var scrolltop document.documentelement.scrolltop window.pageyoffset document.body.scrolltop if height scroll...