document.body.scrollTop滚动失效

先来说一下场景

      进入页面之后,需要页面滚动到指定的标签位置,但是如下设置之后,并没有什么效果

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;

原创不易!自由转载!保留出处!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章