6

次のコードは、ユーザーがページの一番下までスクロールして機能するかどうかを検出するために使用されます。

if($(window).scrollTop() == $(document).height() - $(window).height()){
//do something
}

問題:

ドキュメントの高さからウィンドウの高さを引き、それをスクロールの高さと比較して、ページの下部に到達したかどうかを判断する理由がわかりません。なんで単純じゃないの

if($(window).scrollTop() == $(document).height()){
//do something
}

また

if($(window).scrollTop() ==  $(window).height()){
//do something
}
4

3 に答える 3

15

これは$(window).scrollTop()、ページの上部の位置を$(document).height()返し、ページの下部の位置を返すためです。したがって、比較する位置を取得するには、ウィンドウの高さを差し引く必要があります。これにより、ページの一番下まで完全にスクロールした場合の位置が得られます。

于 2013-03-28T19:33:28.680 に答える
3

$(window).scrollTop()ドキュメントに対するウィンドウの上部の位置です。今見ているページを1385一番下までスクロールした場合です。 $(document).height()ページ全体の高さです(1991私にとって)。$(window).height() はウィンドウ(ビューポート)の高さです(606私にとって)。これは、ビューポートの上部の位置にウィンドウの高さを加えたものが、ビューポートの下部の位置であることを意味します。 1385 + 606 = 1991.

于 2013-03-28T19:35:53.777 に答える
0

scrollTop値がドキュメントの高さの値ほど高くなることはありません。これは、ドキュメントがすべてウィンドウの外に出るまでスクロールしたことを意味します。

ウィンドウの高さと比較するscrollTopと、ドキュメントの下部ではなく、1 画面下にスクロールしたことになります。

ドキュメントの高さからウィンドウの高さを引くと、ウィンドウscrollTopの下部がドキュメントの下部にある場合の値が得られます。

于 2013-03-28T19:34:54.743 に答える