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