如何确定 div 是否滚动到底部?
2022-08-30 05:17:29
在不使用jQuery或任何其他JavaScript库的情况下,我如何确定带有垂直滚动条的div是否一直滚动到底部?
我的问题不是如何滚动到底部。我知道该怎么做。我想确定div是否已经滚动到底部。
这不起作用:
if (objDiv.scrollTop == objDiv.scrollHeight)
在不使用jQuery或任何其他JavaScript库的情况下,我如何确定带有垂直滚动条的div是否一直滚动到底部?
我的问题不是如何滚动到底部。我知道该怎么做。我想确定div是否已经滚动到底部。
这不起作用:
if (objDiv.scrollTop == objDiv.scrollHeight)
你非常接近使用.scrollTop == scrollHeight
scrollTop
指滚动位置的顶部,这将是scrollHeight - offsetHeight
您的 if 语句应如下所示(不要忘记使用三重等于):
if( obj.scrollTop === (obj.scrollHeight - obj.offsetHeight))
{
}
编辑:纠正了我的答案,完全错了
为了在考虑边框,水平滚动条和/或浮动像素数的可能性等因素时获得正确的结果,您应该使用...
el.scrollHeight - el.scrollTop - el.clientHeight < 1
注意:如果要获得正确的结果,则必须使用 clientHeight 而不是 offsetHeight。offsetHeight 仅在 el 没有边框或水平滚动条时才会为您提供正确的结果