document.body 和 document.documentElement 的问题

来源:5-16 首页页面开发(滚动加载逻辑实现)

慕先生2017404

2019-03-09

老师,您好!请问使用clientHeight、scrollHeight和scrollTop时怎么区分什么时候用document.body,什么时候用document.documentElement?

写回答

2回答

吕小鸣

2019-03-09

  1. document.documentElement是整个文档节点树的根节点,在网页中即html标签,document.body是整个文档DOM节点树里的body节点,网页中即为body标签元素。

  2. 一般情况下在获取scrollTop时,使用两个API都可以获取到,但是由于浏览器兼容性的原因,不同的浏览器可能会拿到的值永远时0,这种情况经常发生在文档使用了DTD(DOCTYPE声明)时,document.body.scrollTop的值为0。

  3. 所以为了保险起见,一般写成var top = document.documentElement.scrollTop || document.body.scrollTop;来进行兼容哈。

0
1
慕先生2017404
非常感谢老师的回答!
2019-03-10
共1条回复

吕小鸣

2019-03-09

同学你好,clientHeight、scrollHeight和scrollTop可以看这张图,比较清晰://img.mukewang.com/szimg/5c83b4810001308009480612.jpg

0
0

移动Web App开发之实战美团外卖

运用React全家桶技术,从0到1学习全面的移动 Web APP 开发技术。

389 学习 · 235 问题

查看课程