ドキュメントのスクロール位置の値を取得するにはどうすればよいですか?
回答:
$(document).height() //returns window height
$(document).scrollTop() //returns scroll position from top of document
scrollHeight
。
ここで取得する方法ですscrollHeight
jQueryのセレクタを使用して得られた要素のを:
$(selector)[0].scrollHeight
場合selector
要素(例えばのIDですelemId
)、配列の0-索引付きアイテムを選択したい要素になります、とすることを保証されているscrollHeight
正しいだろう。
Jquery 1.6以降を使用している場合は、propを使用して値にアクセスします。
$(document).prop('scrollHeight')
以前のバージョンはattrから値を取得するために使用されていましたが、1.6以降ではありませんでした。
document.getElementById("elementID").scrollHeight
$("elementID").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')
。これは最も簡単な解決策のようですが、互換性についてはあまりチェックしていません。Emanuele Del Grandeは、別のソリューションについて、これは8未満のIEではおそらく機能しないと述べています。
他のほとんどのソリューションはスクロール可能な要素に対しては正常に機能しますが、これはウィンドウ全体に対して機能します。特に、AnkitのソリューションについてMichaelと同じ問題がありました。つまり、$(document).prop('scrollHeight')
が返されundefined
ます。