无论怎么滚动document.body.scrollTop始终为0

当在Vue项目中遇到document.body.scrollTop始终为0的问题,其实是由于DTD(文档类型定义)导致的。在有DOCTYPE声明的页面中,应使用document.documentElement.scrollTop,而在没有DOCTYPE声明的页面中,则使用document.body.scrollTop。解决方案是根据页面DTD正确选择使用document.documentElement还是document.body来获取滚动位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决方案 https://blog.csdn.net/qq_24729895/article/details/79049066
转载:
Vue中document.body.scrollTop的值总为零的解决办法

最近在做vue的时候监听页面滚动发现document.body.scrollTop一直为0

但是发现document.body.scrollTop一直是0。

查资料发现是DTD的问题。

页面指定了DTD,即指定了DOCTYPE时,使用document.documentElement。

页面没有DTD,即没指定DOCTYPE时,使用document.body。

IE和Firefox都是如此。
————————————————
版权声明:本文为CSDN博主「echone_wenqian」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_24729895/article/details/79049066

补充一下:dtd

文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。

DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。
就是这个
<!DOCTYPE 根元素 [元素声明]>

<!DOCTYPE html>

这样写即指定根元素为html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值