IE 、Firefox、chrome及Safari下scrollTop的差異

剛在寫document.body.scrollTop=0 實現返回頁面頂部時,發現火狐及IE下無效,但在chrome及Safari下有效,后來測試發現滾動頁面一定距離后:
1、在IE及Firefox中document.body.scrollTop的值恒為零,但是document.documentElement.scrollTop及window.pageYOffset(該參數返回文檔在垂直方向已滾動的像素值)的值為滾動的距離;
2、在chrome及Safari(webkit內核)下document.documentElement.scrollTop的值恒為零,但是document.body.scrollTop及window.pageYOffset的值為滾動的距離

一、IE11的情況

IE.png

二、Firefox 52.0.2的情況

Firefox.png

三、chrome 57.0.2987.133 的情況

chrome.png

四、Safari的情況

用的手機Safari瀏覽器測試的。。。沒錢買蘋果筆記本, 略...... 哈哈。。。(Safari內核也為webkit,同chrome一樣)

五、總結

因此構建返回頂部事件時,為了兼容,可以這樣寫:

    goToTop.addEventListener("click", function () {
        if (document.documentElement.scrollTop){
            document.documentElement.scrollTop=0;
        }
        if (document.body.scrollTop){
            document.body.scrollTop=0 ;
        }
//        $(window).scrollTop(0); 使用了jQuery 或zepto 等庫 可以這樣寫
    })

或者更簡單的方法

    goToTop.addEventListener("click", function () {
                window.scrollTo(0,0); //前面一個0 表示要在窗口文檔顯示區左上角顯示的文檔的 x 坐標,后面0表示y坐標
})

值得注意的是 我們并沒有 因為window.pageYOffset在這三個瀏覽器中表現正常,就使用window.pageYOffset=0 這樣的語句,這是因為這樣只是簡單的賦值而已,其不會去操作滾動條。

**本文版權歸本人即簡書筆名:該賬戶已被查封 所有,如需轉載請注明出處。謝謝! *

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Window和document對象的區別 window對象window對象表示瀏覽器中打開的窗口window對象是...
    FConfidence閱讀 2,250評論 0 5
  • 一、JS前言 (1)認識JS 也許你已經了解HTML標記(也稱為結構),知道了CSS樣式(也稱為表示),會使用HT...
    凜0_0閱讀 2,798評論 0 8
  • H5頁面窗口自動調整到設備寬度,并禁止用戶縮放頁面//一、HTML頁面結構 // width 設置viewp...
    tiandashu閱讀 16,767評論 0 9
  • 作業太多的教育是偽教育,以分數為唯一評價標準的管理是偽管理――不是我說的 我主業教語文,兼代另兩個班的寫字課。 七...
    雪地飛狐閱讀 573評論 6 6
  • 一,電視劇太長最少也得有個二十多集三十集吧,每一集最少45分鐘,一部電視劇下來得花多少時間。我不是一個特別忙的人,...
    goddessna閱讀 426評論 0 0