Подтвердить что ты не робот

Autoscroll div с jQuery в нижней части после добавления

У меня есть div class= 'messages'. Я добавляю дату в этот div через jQuery.append() Вот стили:

.messages {
border: 1px solid #dddddd;
padding:10px;
height: 400px;
overflow-x:visible;
overflow-y: scroll;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
margin-bottom:10px;
font-size:14px;
}

Для автопрокрутки я использую такую ​​функцию:

receiveMessage = function (name, message, type) {
    //adding new message
    $("#messages").append('<strong>' + name + ": " + '</strong>' + message + '<br>');
    /autoscrolling to the bottom
    $("#messages").animate({
        scrollTop: $("#messages").height()
    }, 300);
}

Около ~ 20 сообщений прокручиваются нормально, но после того, как он "зависает", новые сообщения не прокручиваются. Версия Chrome 19.0.1084.56. Что я делаю неправильно? Спасибо!

4b9b3361

Ответ 1

Измените

scrollTop: $("#messages").height()

к

scrollTop: $("#messages").scrollHeight

Ответ 2

Это решение не сработало для меня, однако, следующее...

$(document).ready(function(){
   $('#chat-scroll').animate({
   scrollTop: $('#chat-scroll').get(0).scrollHeight}, 2000); 
 });

Ответ 3

Попробуйте:

$(document).ready(function(){
   $('#chat-scroll').animate({scrollTop: $('#chat-scroll')[0].scrollHeight}, 2000);
});