javascript
JS中完美兼容各大浏览器的scrolltop方法
1、各瀏覽器下 scrollTop的差異
IE6/7/8/9/10:
對(duì)于沒(méi)有doctype聲明的頁(yè)面里可以使用 document.body.scrollTop 來(lái)獲取 scrollTop高度 ;
 對(duì)于有doctype聲明的頁(yè)面則可以使用 document.documentElement.scrollTop ;
Safari:
safari 比較特別,有自己獲取scrollTop的函數(shù) : window.pageYOffset ;
Firefox:
火狐等等相對(duì)標(biāo)準(zhǔn)些的瀏覽器就省心多了,直接用 document.documentElement.scrollTop ;
2、獲取scrollTop值
完美的獲取scrollTop 賦值短語(yǔ) :
var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;通過(guò)這句賦值就能在任何情況下獲得scrollTop 值。
仔細(xì)觀察這句賦值,你發(fā)現(xiàn)啥了沒(méi)??
 沒(méi)錯(cuò), 就是 window.pageYOffset (Safari) 被放置在 || 的中間位置。
因?yàn)楫?dāng) 數(shù)字0 與 undefine 進(jìn)行 或運(yùn)算時(shí),系統(tǒng)默認(rèn)返回最后一個(gè)值。即或運(yùn)算中 0 == undefine ;
當(dāng)頁(yè)面滾動(dòng)條剛好在最頂端,即scrollTop值為 0 時(shí),IE 下 window.pageYOffset (Safari) 返回為 undefine ,此時(shí)將 window.pageYOffset (Safari) 放在或運(yùn)算最后面時(shí), scrollTop 返回 undefine , undefine 用在接下去的運(yùn)算就會(huì)報(bào)錯(cuò)咯。
而其他瀏覽器 無(wú)論 scrollTop 賦值或運(yùn)算順序如何都不會(huì)返回 undefine. 可以安全使用…
所以說(shuō)到頭還是IE的問(wèn)題咯. 杯具…
精神有點(diǎn)恍惚,不知道有沒(méi)有表達(dá)清楚。
 不過(guò)最后總結(jié)出來(lái)這句實(shí)驗(yàn)過(guò)OK,大家放心使用。
這是完美的獲取scrollTop賦值語(yǔ)句。
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
總結(jié)
以上是生活随笔為你收集整理的JS中完美兼容各大浏览器的scrolltop方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: [收集]Sublime Text 3常用
- 下一篇: 14万字面试题汇总整理,祝你顺利斩获大厂
