2012-12-27 8 views
8

実際に最後までスクロールしてこの位置を読み取ることなく、すべてのブラウザの最大スクロール位置を判断する方法はありますか?行の高さやパディングが異なるブラウザで最大スクロール位置を特定するにはどうすればよいですか?

コンテナdivを固定高さでオーバーフローさせます。コンテナの高さの合計がコンテナの高さよりも大きいいくつかのdiv要素。

私は単純にコンテナの高さから合計アイテムの高さを差し引いた最大のスクロール位置(y)があります。これは、コンテナのline-heightがアイテムのheightより大きい場合は、真であると思われます。この場合、すべてのブラウザが最大スクロール位置を異なって決定するようです。

パディングではさらに悪化し、一部のブラウザでは上部パディングが追加され、一部のブラウザでは上部と下部の両方のパディングが追加されます。

たとえば、fiddleを参照してください。コンテナのline-heightとdiv.itemの高さで遊んでください。

答えて

6

私はブラウザだけの一握りにテストする能力を持っているが、私は何を探していることだと思う:

更新 jsFiddleに示さ
elm.scrollHeight - elm.clientHeight 

+0

注意: 'elm.clientHeight'はW3C仕様の一部ではありません。 [MDNリファレンス](https://developer.mozilla.org/en-US/docs/Web/API/element.clientHeight?redirectlocale=en-US&redirectslug=DOM%2Felement.clientHeight)を参照してください。 – Simone

+0

@simoneヘッドアップありがとう。 – tiffon

+0

私は28の時点でFirefoxが 'elm.scrollTopMax'をサポートしていることを発見しました。これは' elm.scrollHeight - elm.clientHeight'と同じ番号を返しますが、他のブラウザではサポートされていません。 –

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?に関するいくつかの関連記事があります。 があり、より多くのFAQがあり、これがあなたを助けてくれることを願っています!

関連する問題