div があり、最大スクロール高さのサイズを見つける必要があります。現在、12 件のメッセージを含む私のチャットの高さは 800px ですが、このコードを使用すると、次のようになります。
var trueDivHeight = $('#chat')[0].scrollHeight;
スクロール全体ではなく、divの高さのみがわかり、490pxと表示されます。しかし、私は底までの最大の高さを見つけたいです。
スクロールの上から下へ。
なぜこれが必要なのですか?私がこの報奨金の質問を解決するには: AJAX チャット - スクロールを自動的に下にドラッグしますが、ユーザーが上にスクロールしているときはドラッグしませんか?
基本的に私ができることは、メッセージを送信するときにチェックすることです:
if (checkScroll(trueDivHeight)) { //Runs the function checkScroll with max div height.
scrollDown = true; // turn true if it was true.
}
if (scrollDown) {
setInterval(function () {
scrollToBottom(); // scroll to bottom 1 second after posted message..
}, 1000);
}
そして私が使用できる機能:
function scrollToBottom() {
$('#chat').scrollTop(bottom); // Makes scroll go to the most bottom.
}
function checkScroll(size) {
if ($("#chat").scrollTop() == size) { // Checks if current scroll position equals to the max bottom position.
return true; // if yes, return true.
}
}
しかし問題は、 trueDivHeight がスクローラーの高さ全体を上から下まで見つけられないことです。もしそうなら、それは私のために働くでしょう。
何か案は?
編集:
var trueDivHeight = $('#chat')[0].scrollHeight; // finds the max bottom px
var divHeight = $('#chat').height();
var bottom = $('#chat')[0].scrollHeight;