document.documentElement 和 document.body 区别

2,198 阅读1分钟

document.documentElement.scrollTop 一直为0,无论你是给它赋值,或者取值,一直为0,而 document.body.scrollTop 却可以取得值,也可以赋值。

原因

原因就是我们平时说的DTD问题。DTD问题就是你的html中没有有下图中红框中的内容:

1.如果有DTD,就可以使用document.documentElement.scrollTop

2.如果没有DTD,使用document.body

关于scrollTop取值操作

const scrollTop = document.documentElement.scrollTop || document.body.scrollTop

scrollTop赋值操作

document.documentElement.scrollTop = 666;
document.body.scrollTop = 666;

结束

在做移动端页面时,发现华为手机浏览器就有DTD问题(由于没有其他安卓手机,不知道是不是安卓手机都有DTD问题,请哪位大佬指教,感谢🙏🙏🙏)