gpt4 book ai didi

javascript - 为什么 scrollTop、pageYOffset 和 height 都不起作用?

转载 作者:行者123 更新时间:2023-11-30 18:29:11 27 4
gpt4 key购买 nike

我正在尝试检测浏览器窗口上是否有垂直滚动条(如果内容超过窗口高度并溢出)。我试过 document.body.scrollTopwindow.pageYOffsetdocument.body.style.height... 这些都在工作!

在对使用这些属性初始化的变量进行 window.alert 测试时,pageYOffset 总是返回 0 无论是否有滚动条,另外两个返回似乎是一个空字符串。

我唯一的想法是可能是 CSS 定位冲突导致的,但是似乎没有这样的冲突......有什么想法、解决方案、解决方法吗?

最佳答案

这个

window.innerWidth - document.documentElement.clientWidth

返回浏览器窗口垂直滚动条的宽度,0如果没有滚动条。

所以,你可以有一个函数...

function windowHasVerticalScrollbar () {
return window.innerWidth - document.documentElement.clientWidth > 0;
}

很遗憾,IE8 和 IE7 不支持 window.innerWidth值,所以这种技术在那些浏览器中不起作用。 (但是,它确实适用于 IE9 和所有其他浏览器)。

此外,由于 documentElement<html>元素(网页的根元素),如果您在该元素上设置样式(如边距、绝对定位等),计算可能会返回不正确的结果。

关于javascript - 为什么 scrollTop、pageYOffset 和 height 都不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10115166/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com