2012-07-30 11 views
6

私は式ページの最大スクロール位置を正確に取得する方法は?

document_height - window_height = max_scroll_position 

を使用する場合、私はそれが一貫して、例えばのために0 にFirefoxのオープンコンソール上を評価すべきであると考えているが、それは、1または0に評価され、スクロールでページの下へhttp://stackoverflow.comとコンソールに次の操作を行います

($(document).height() - $(window).height()) - $(document).scrollTop() 

私は答えとして1を取得する(が最も下までスクロール位置を維持することを忘れないでください) jquery.com方法についてこれまでに行ったことは、0を与えます

私は何が欠けていますか?

+0

の下にスクロールしたとき私は「0」を得ますそのページを実行してそのコード(chrome)を実行し、Firefoxで1を使用します(コンソールとFirebugをビルドします)。 – travis

+0

Chromeを使用している場合は、ズームインしている可能性があります。ネイティブのズームレベルにズームアウトすると、「0」が表示されます。 –

+1

ユーザーはズームインされている可能性があります。そのため、この質問に対する回答が原因と考えられます。 – Brilliand

答えて

2

いくつかのテストの後、余分な1ピクセルは間違いなく丸め誤差です。これら3つの変数(ドキュメントの高さ、ウィンドウの高さ、およびスクロールトップ)は、JavaScriptのプロパティの要件に合わせて必要に応じて拡大または縮小されたブラウザウィンドウのスケールよりも内部精度またはスケールが高く維持されます。ズーム比の増加に伴って増加する可能性があるエッジの場合、これらの値は、一貫性のない結果を生むように丸まってしまいます。

他の変数の値に基づいてこれらの変数のうちの1つ以上を何度も速やかに調整しない限り、この丸め誤差によってユーザーに問題が表示されることはありません。頻繁に調整する必要がある場合は、調整した数値をキャッシュし、ブラウザで報告された数値の代わりにキャッシュされた数値を使用して計算してください。

は[注:私は最終的にFirefoxで250%のズームで、-1 OP式を使用して丸め誤差を得ることができた。】

関連する問題