document.body.scrollTop获取不到
时间: 2023-05-23 13:02:12 浏览: 197
从 HTML5 开始,使用 document.documentElement.scrollTop 代替 document.body.scrollTop 来获取页面滚动距离。如果想获取一个元素相对于视口的距离,可以使用元素的 getBoundingClientRect() 方法。
相关问题
这个什么意思function getScrollTop() { if (self.pageYOffset) { return self.pageYOffset; } else if (document.documentElement && document.documentElement.scrollTop) { return document.documentElement.scrollTop; } else if (document.body) { return document.body.scrollTop; } }
这也是一个 JavaScript 函数,用于获取当前页面的滚动条纵向位置。函数内部的逻辑如下:
1. 首先判断浏览器是否支持 self.pageYOffset 属性,如果支持则返回该属性值。
2. 如果不支持 self.pageYOffset 属性,则判断当前文档是否处于标准模式(CSS1Compat),如果是则返回文档根元素(即<html>元素)的 scrollTop 属性。
3. 如果当前文档不处于标准模式,则返回文档的 body 元素的 scrollTop 属性。
4. 如果以上方法都无法获取到滚动条纵向位置,则返回 undefined。
该函数可以在编写网页时,用于获取页面的滚动条纵向位置,以便在实现各种效果或定位元素等方面使用。
const scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop; console.log(scrollTop);以上代码在获取页面滚动高度,打印不出来数据,为什么
可能是因为在代码执行时,页面还没有滚动,因此获取到的滚动高度为0,导致打印不出来数据。如果需要在页面滚动时动态获取滚动高度并打印出来,可以将代码放在滚动事件监听函数中。例如:
```
window.addEventListener('scroll', function() {
const scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
console.log(scrollTop);
});
```
这样,每次滚动页面时都会触发滚动事件监听函数,从而动态获取滚动高度并打印出来。
阅读全文