document.documentElement.scrollLeft 與document.body.scrollTop區(qū)別

問(wèn)題描述

針對(duì)獲取頁(yè)面的垂直滾動(dòng)條的位置,IE Firefox Opera 標(biāo)準(zhǔn)模式下使用 document.documentElement.scrollLeft 獲取頁(yè)面的水平滾動(dòng)條位置,而混雜模式下則是使用 document.body.scrollLeft。Chrome Safari 在兩種文檔模式下均使用 document.body.scrollLeft 獲取頁(yè)面的水平滾動(dòng)條位置。同理,針對(duì)獲取頁(yè)面的水平滾動(dòng)條的位置的情況與上面類似。

造成的影響

在混雜模式下,由于所有瀏覽器均使用 document.body.scrollTop 獲取頁(yè)面的垂直滾動(dòng)條的位置,所以不會(huì)出現(xiàn)兼容性問(wèn)題。而在標(biāo)準(zhǔn)模式下,由于 Chrome 與 Safari 仍然使用 document.body.scrollTop,而對(duì)于 document.documentElement.scrollTop 返回為 0。這時(shí)如果僅僅使用 document.documentElement.scrollTop 獲取頁(yè)面垂直滾動(dòng)條頂端位置,則在 Chrome 和 Safari 中就會(huì)因?yàn)橛谰梅祷?0 導(dǎo)致頁(yè)面運(yùn)行異常(如,絕對(duì)定位的元素不能隨頁(yè)面的滾動(dòng)條而滾動(dòng)或位置有誤)。對(duì)于獲取頁(yè)面的水平滾動(dòng)條的位置,情況與上面描述類似。

受影響的瀏覽器

所有瀏覽器

解決方案

使用 "||" 邏輯語(yǔ)句將這兩種獲取方式相連,以保證兼容性。如:
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文是針對(duì)剛學(xué)編程的小白,都是一些基礎(chǔ)知識(shí),如果想了解更多深層一點(diǎn)的東西,歡迎移步本人博客!! 博客地址 點(diǎn)擊跳轉(zhuǎn)...
    西巴擼閱讀 730評(píng)論 0 2
  • 制作網(wǎng)頁(yè)的過(guò)程中,你有時(shí)候需要知道某個(gè)元素在網(wǎng)頁(yè)上的確切位置。 下面的教程總結(jié)了Javascript在網(wǎng)頁(yè)定位方面...
    麥田里的野望閱讀 1,721評(píng)論 0 1
  • 一、JS前言 (1)認(rèn)識(shí)JS 也許你已經(jīng)了解HTML標(biāo)記(也稱為結(jié)構(gòu)),知道了CSS樣式(也稱為表示),會(huì)使用HT...
    凜0_0閱讀 2,900評(píng)論 0 8
  • 大學(xué)畢業(yè)后和公公的第一次見(jiàn)面,她沒(méi)怎么變,還是那么瘦,還是細(xì)致入微,言辭犀利。其實(shí)能怎么變呢,我們畢業(yè)才不過(guò)短短大...
    徐白芷閱讀 644評(píng)論 0 0
  • 最近,我在看《福斯特醫(yī)生》第一季,這部豆瓣評(píng)分高達(dá)9.0分的英國(guó)BBC熱播劇,果然名不虛傳。 聽(tīng)名字像是演醫(yī)患故事...
    感性天涯閱讀 393評(píng)論 0 1

友情鏈接更多精彩內(nèi)容