ドキュメントのスクロール位置の値を取得する方法は?
$(document).height() //returns window height
$(document).scrollTop() //returns scroll position from top of document
JQueryセレクターを使用して取得した要素のscrollHeight
を取得する方法は次のとおりです。
$(selector)[0].scrollHeight
selector
が要素のID(例:elemId
)の場合、配列の0インデックス付きアイテムが選択したい要素になり、scrollHeight
が要素のIDになることが保証されます。正しい。
Jquery 1.6以上を使用している場合は、propを使用して値にアクセスします。
$(document).prop('scrollHeight')
以前のバージョンでは、attrから値を取得していましたが、1.6以降では取得していませんでした。
document.getElementById("elementID").scrollHeight
$("elementID").scrollHeight
HTML DOM要素を使用しますが、jQueryセレクターは使用しません。次のように使用できます。
var height = document.body.scrollHeight;
このような何かがあなたの問題を解決するはずです:
$.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() );
シモンズ:あなたがそれを必要とするたびにその関数を呼び出し、アラートはテスト目的のためです。
ウィンドウのスクロールバーによってスクロールされる領域の実際のスクロール可能な高さを取得するには、$('body').prop('scrollHeight')
を使用しました。これは最も簡単な作業ソリューションのようですが、互換性については徹底的に確認していません。エマヌエーレデルグランデは、これがおそらく8以下のIEには機能しない別のソリューションについて指摘しています。
他のほとんどのソリューションはスクロール可能な要素に対しては正常に機能しますが、これはウィンドウ全体に対して機能します。特に、AnkitのソリューションについてMichaelと同じ問題がありました。つまり、$(document).prop('scrollHeight')
がundefined
を返しています。
これを試して:
var scrollHeight = $(scrollable)[0] == document ? document.body.scrollHeight : $(scrollable)[0].scrollHeight;
たとえば、これを試すことができます。このコードは、すべてのDIVタグのスクロールバーを下部に配置します
要確認:jQueryは、引数として値の代わりに関数を受け入れることができます。 「this」はjQueryによって処理されるオブジェクトです。関数は、現在のDIV「this」のscrollHeightプロパティを返し、ドキュメント内のすべてのDIVに対して実行します。
$("div").scrollTop(function(){return this.scrollHeight})