document.documentElement.scrollTop、document.body.scrollTop等兼容性

获取滚动条距离兼容性

注:
Windows电脑,苹果Browser暂时无法验证!
DTD指最新:
documentElement:整个节点树的根节点root,即 标签
body:DOM对象里的body子节点,即 标签

Chrome版本:版本 61.0.3163.100(正式版本) (64 位)
Firefox:49.0

// DTD不存在

    window.onscroll = function() {
        console.log('document.body.scrollTop: ' + document.body.scrollTop); 
        // IE(7/8/9)——————————————————————————  document.body.scrollTop: 0
        // IE(10/11)、Chrome、Firefox——————————————————————————  document.body.scrollTop: 变化的值


        console.log('document.documentElement.scrollTop: ' + document.documentElement.scrollTop);
        // Chrome、Firefox  ———————————————————— document.documentElement.scrollTop: 0
        // IE(7/8/9/10/11)———————————————————— document.documentElement.scrollTop: 变化的值

    };

// DTD存在

    window.onscroll = function() {
        console.log('document.body.scrollTop: ' + document.body.scrollTop); 
        // IE(7/8/9/10/11)、Chrome、Firefox——————————————————————————  document.body.scrollTop: 0

        console.log('document.documentElement.scrollTop: ' + document.documentElement.scrollTop);
        // IE(7/8/9/10/11)、Chrome、Firefox  ———————————————————— document.documentElement.scrollTop: 变化的值
    };

结论:

  • DTD存在, 必须用document.documentElement.scrollTop,而不是document.body.scrollTop
  • DTD不存在,Chrome、Firefox必须用document.body.scrollTopIE(7/8/9)必须用document.documentElement.scrollTopIE(10/11)两者皆可。

跟下面两位描述的不太符合!(看博客文章记得要多动手、多验证啊!)
后面的是两位作者写博客的时间。

JS中出现的兼容性问题的总结
2017-01-02 21:09
获取scrollTop兼容各浏览器的方法,以及body和documentElement是啥? 第1点 2013-12-25 13:22

又找了一篇发现描述又不一样,Chrome也有多个版本,从其描述上看并不是之前都一直支持document.documentElement.scrollTop的!
JS基础篇– body.scrollTop与documentElement.scrollTop

待读文章:
浏览器兼容性小记-DOM篇(二)
整理浏览器对网页的兼容性问题(一)——JS&DOM篇
DOM(一)一些属性方法介绍以及兼容性问题

你可能感兴趣的:(JavaScript)