我有一段 JS 代码,用于确定是否存在垂直滚动条并将 CSS 类应用于元素。没什么大不了的。让我困惑的是它似乎在做与我理解的它应该做的相反的事情。这不是问题,除非它是一个错误并且将来会修复。
代码:
if (document.body.scrollHeight > document.body.clientHeight) {
var d = document.getElementById("footer").className = "footernoscroll";
}
Run Code Online (Sandbox Code Playgroud)
我的理解是,如果有垂直滚动条,它将应用该类,但如果没有滚动条,它似乎正在应用该类。我是否正确解释了这一点,并且代码表现得很奇怪,或者我的解释是错误的?
编辑:我想我应该添加,如果我反转运算符,效果将反转,并且它将使用else语句的一部分。
确保您的身体 100% 位于窗户高度。如果没有这个,那么该clientHeight值将是其中项目的组合高度body,而不是整个窗口高度,而scrollHeight 将是窗口的完整高度。
这是一个显示它工作的小提琴(打开开发工具和查看控制台):http://jsfiddle.net/alexcoady/c53d7q27/1/
html, body {
height: 100%;
padding: 0;
margin: 0;
}
Run Code Online (Sandbox Code Playgroud)
clientHeight 文档
scrollHeight 文档