Jquery経由でデータが追加されたスクロール可能なdivがあります。特定の条件でのみ下に自動スクロールするようにしようとしています。
- データが最初に読み込まれる (.append) ときは、一番下までスクロールする必要があります。
- div が一番下までスクロールされると、各 .append の後に div の一番下に残る必要があります
- div が下部になく、ロード (.append) 後にスクロールされない場合。
データをロードするたびに div を一番下に保持する方法に関する多くのトピックを見つけましたが、3 番目の条件に関連するものはまだ見つかりませんでした。誰かが私を正しい方向に向けることができれば、それは大歓迎です。
アップデート
これが私が今持っているものです。うまく機能しますが、上部に何かを読んでいると、非常に面倒です。
$("#chatroom").scrollTop($("#chatroom")[0].scrollHeight);
スクロールバーがどこにあるかがわかれば、ifステートメントを実行して、スクロールバーが一番下にない場合にこれが実行されないようにすることができるようです。
アップデート #2
XD では機能していないように見えるスクリプトを見つけました。それは他の人のために働くようです。私は今それを機能させようとしています。テスト後、スクロール バーを動かさない場合は動作するように見えます。スクロール バーを動かした場合、IF は true を返さず、下に移動することもありません。
function divbottom() {
var chatroom = document.getElementById (chatroom);
if (chatroom.offsetHeight + chatroom.scrollTop >= chatroom.scrollHeight) {
$("#chatroom").scrollTop($("#chatroom")[0].scrollHeight);
}
}