何が違いますか:
$(window).scrollTop()
そして
$(document).scrollTop()
ありがとう。
どちらも同じ効果を持つことになります。
しかし、コメントで指摘されているように、$(window).scrollTop()
は$('html').scrollTop()
より多くのウェブブラウザでサポートされています。
まず、ウィンドウとドキュメントの違いを理解する必要があります。ウィンドウオブジェクトは最上位のクライアントサイドオブジェクトです。ウィンドウオブジェクトの上には何もありません。 Javascriptはオブジェクト指向の言語です。オブジェクトから始めて、そのプロパティまたはオブジェクトグループのプロパティにメソッドを適用します。たとえば、ドキュメントオブジェクトはウィンドウオブジェクトのオブジェクトです。ドキュメントの背景色を変更するには、ドキュメントのbgcolorプロパティを設定します。
window.document.bgcolor = "red"
あなたの質問に答えるために、ウィンドウとドキュメントのscrollTopの最終結果に違いはありません。どちらも同じ出力になります。
一般的にdocumentは主にイベントを登録するために使い、windowを使ってscroll、scrollTop、およびresizeのようなことをします。
クロスブラウザのやり方は
var top = ($(window).scrollTop() || $("body").scrollTop());
私はここで説明されているscrollTop
と同様の問題をいくつか抱えています。
最後に私はFirefoxとIEでこれを回避しました。セレクタ$('*').scrollTop(0);
を使う
あなたがあなたが影響を与えたくない要素があるならば完璧ではありません、しかしそれはDocument、Body、HTMLとWindowの視差を回避します。それが助けになるなら...