如何确定 div 是否滚动到底部?

2022-08-30 05:17:29

在不使用jQuery或任何其他JavaScript库的情况下,我如何确定带有垂直滚动条的div是否一直滚动到底部?

我的问题不是如何滚动到底部。我知道该怎么做。我想确定div是否已经滚动到底部。

这不起作用:

if (objDiv.scrollTop == objDiv.scrollHeight) 

答案 1

你非常接近使用.scrollTop == scrollHeight

scrollTop指滚动位置的顶部,这将是scrollHeight - offsetHeight

您的 if 语句应如下所示(不要忘记使用三重等于):

if( obj.scrollTop === (obj.scrollHeight - obj.offsetHeight))
{
}

编辑:纠正了我的答案,完全错了


答案 2

为了在考虑边框,水平滚动条和/或浮动像素数的可能性等因素时获得正确的结果,您应该使用...

el.scrollHeight - el.scrollTop - el.clientHeight < 1

注意:如果要获得正确的结果,则必须使用 clientHeight 而不是 offsetHeight。offsetHeight 仅在 el 没有边框或水平滚动条时才会为您提供正确的结果