190

違いは何ですか:

$(window).scrollTop()

$(document).scrollTop()

ありがとう。

4

4 に答える 4

157

どちらも同じ効果があります。

ただし、コメントで指摘されているように、:はより$(window).scrollTop()多くのWebブラウザでサポートされています$('html').scrollTop()

于 2011-03-20T20:45:33.920 に答える
39

まず、との違いを理解する必要がありwindowますdocumentwindowオブジェクトは、最上位のクライアント側オブジェクトです。windowオブジェクトの上には何もありません。JavaScriptはオブジェクト指向言語です。オブジェクトから始めて、そのプロパティまたはそのオブジェクトグループのプロパティにメソッドを適用します。たとえば、documentオブジェクトはオブジェクトのwindowオブジェクトです。documentの背景色を変更するには、documentbgcolorプロパティを設定します。

window.document.bgcolor = "red" 

あなたの質問に答えるために、との間で最終結果に違いはありませwindowdocument scrollTop。どちらも同じ出力になります。

http://jsfiddle.net/7VRvj/6/で実例を確認してください

一般に、document主にイベントを登録するために使用し、、、、などのことwindowを行うために使用します。scrollscrollTopresize

于 2011-03-20T20:41:06.977 に答える
4

これを行うクロスブラウザの方法は

var top = ($(window).scrollTop() || $("body").scrollTop());
于 2016-10-20T12:54:04.907 に答える
0

ここで説明したのと同様の問題がいくつか発生しscrollTopました。

結局、私はセレクターを使用してFirefoxIEでこれを回避しました$('*').scrollTop(0);

影響を与えたくない要素がある場合は完璧ではありませんが、ドキュメント、本文、HTML、およびウィンドウの不一致を回避します。それが役立つなら...

于 2012-11-22T14:08:09.453 に答える