先来说一下场景:
进入页面之后,需要页面滚动到指定的标签位置,但是如下设置之后,并没有什么效果
document.body.scrollTop=(0,300)
解决方案:
let htmlDom = document.documentElement;
htmlDom.scrollTo(0,300)
问题解决了,但是这2中写法有啥区别呢?咱们继续往下看:
1、什么是document.body?
返回html dom中的body节点 即<body>
2、什么是document.documentElement?
返回html dom中的root 节点 即<html>
总结一下:
这个涉及到浏览器机制,chrome、firefox和ie之前有区别;
1)如果页面中存在DTD,那么就可以使用document.documentElement来获取某些值;
2)如果不存在DTD,就不能通过document.documentElement来获取了,就通过document.body来获取某些值了
可以兼容解决方案:
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;