web-dev-qa-db-ja.com

ドキュメントのスクロール位置を取得するにはどうすればよいですか?

ドキュメントのスクロール位置の値を取得する方法は?

82
Somebody
$(document).height() //returns window height

$(document).scrollTop() //returns scroll position from top of document
46
Bob Gregor

JQueryセレクターを使用して取得した要素のscrollHeightを取得する方法は次のとおりです。

$(selector)[0].scrollHeight

selectorが要素のID(例:elemId)の場合、配列の0インデックス付きアイテムが選択したい要素になり、scrollHeightが要素のIDになることが保証されます。正しい。

177
Demwis

Jquery 1.6以上を使用している場合は、propを使用して値にアクセスします。

$(document).prop('scrollHeight')

以前のバージョンでは、attrから値を取得していましたが、1.6以降では取得していませんでした。

45
Ankit
document.getElementById("elementID").scrollHeight

$("elementID").scrollHeight
6
Sachin R

HTML DOM要素を使用しますが、jQueryセレクターは使用しません。次のように使用できます。

var height = document.body.scrollHeight;
6
aqua

このような何かがあなたの問題を解決するはずです:

$.getDocHeight = function(){
     var D = document;
     return Math.max(Math.max(D.body.scrollHeight,    D.documentElement.scrollHeight), Math.max(D.body.offsetHeight, D.documentElement.offsetHeight), Math.max(D.body.clientHeight, D.documentElement.clientHeight));
};

alert( $.getDocHeight() );

シモンズ:あなたがそれを必要とするたびにその関数を呼び出し、アラートはテスト目的のためです。

3
Zuul

ウィンドウのスクロールバーによってスクロールされる領域の実際のスクロール可能な高さを取得するには、$('body').prop('scrollHeight')を使用しました。これは最も簡単な作業ソリューションのようですが、互換性については徹底的に確認していません。エマヌエーレデルグランデは、これがおそらく8以下のIEには機能しない別のソリューションについて指摘しています。

他のほとんどのソリューションはスクロール可能な要素に対しては正常に機能しますが、これはウィンドウ全体に対して機能します。特に、AnkitのソリューションについてMichaelと同じ問題がありました。つまり、$(document).prop('scrollHeight')undefinedを返しています。

3
acjay

これを試して:

var scrollHeight = $(scrollable)[0] == document ? document.body.scrollHeight : $(scrollable)[0].scrollHeight;
1
Dmitry Komin

たとえば、これを試すことができます。このコードは、すべてのDIVタグのスクロールバーを下部に配置します

要確認:jQueryは、引数として値の代わりに関数を受け入れることができます。 「this」はjQueryによって処理されるオブジェクトです。関数は、現在のDIV「this」のscrollHeightプロパティを返し、ドキュメント内のすべてのDIVに対して実行します。

$("div").scrollTop(function(){return this.scrollHeight})
0
Steve