如何确定具有不同行高和/或填充的不同浏览器中的最大滚动位置?

时间:2012-12-27 11:56:29

标签: javascript css

有没有办法确定每个浏览器的最大滚动位置,而不是实际滚动到最后并读取此位置?

采用具有固定高度和溢出的容器div。容器中的几个div元素,其高度总和大于容器的高度。

有一个最大滚动位置(y),我认为它只是容器高度减去总项目高度。这似乎是真的,直到容器的line-height大于项目的height。如果是这种情况,似乎每个浏览器都以不同方式确定最大滚动位置。

使用填充更糟糕的是,一些浏览器添加了顶部填充,一些浏览器添加了顶部和底部填充。

例如,请参阅此fiddle。使用容器line-height和div.item高度。

2 个答案:

答案 0 :(得分:6)

我只能在少数浏览器中进行测试,但我认为你在寻找的是:

elm.scrollHeight - elm.clientHeight

显示在更新的jsFiddle

答案 1 :(得分:4)

看看这个How to find the HTML element Scrollable Height and width using JQuery ?,这显示了如何获得可滚动的高度和宽度, 并且有一些关于元素滚动how to check if the scrollbars are currently visible?how to determine if the vertical and horizontal scrollbars reaches the edges?的相关帖子。 还有更多常见问题解答,我希望这对您有所帮助!