我有一段 JS 代码,判断是否有垂直滚动条,并将 CSS 类应用于元素。没什么大不了的。
令我困惑的是,它似乎在做与我理解它应该做的相反的事情。这不是问题,除非它是一个错误并且在未来被修复。
代码:
if (document.body.scrollHeight > document.body.clientHeight) {
var d = document.getElementById("footer").className = "footernoscroll";
}
我的理解是,如果有垂直滚动条,它将应用该类,但如果没有滚动条,它似乎正在应用该类。我是否正确解释了这一点并且代码运行异常或者我的解释有误?
编辑: 我想我应该补充一点,如果我反转运算符,效果将被反转,它将使用语句的 else
部分。
最佳答案
确保您的 body 是窗口高度的 100%。如果你没有这个,那么 clientHeight
值将是 body
中元素的组合高度而不是整个窗口高度,而 scrollHeight
将为窗口的全高。
这是一个显示它工作的 fiddle (打开开发工具并查看控制台):http://jsfiddle.net/alexcoady/c53d7q27/1/
html, body {
height: 100%;
padding: 0;
margin: 0;
}
关于javascript - scrollHeight 大于 clientHeight,即使没有滚动内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30642367/