2012-06-22 10 views
12

Ho una classe div = 'messaggi'. Aggiungo data per questo div via jQuery.append() Questi sono gli stili:Scorrimento automatico con jQuery in fondo dopo l'aggiunta

.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; 
} 

Per autoscroll io uso tale funzione:

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); 
} 

Chi ~ 20 messaggi sta scorrendo normalmente, ma dopo che è 'blocca', i nuovi messaggi non vengono fatti scorrere. Chrome versione 19.0.1084.56. Cosa sto facendo di sbagliato? Grazie!

+0

Potresti fornire l'HTML o, meglio ancora, creare un caso di test su [jsFiddle] (http://jsfiddle.net)? – AbstractChaos

+0

'# messages' e' .messages'- li hai mixati? – Andreas

risposta

8

Change

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

a

scrollTop: $("#messages").scrollHeight 
+11

in realtà, ora (Questo ha funzionato: $ ('# messages'). Animate ({"scrollTop": $ ('# messages') [0] .scrollHeight}, "fast"); Ho provato a rispondere al mio domanda ma non è mostrata – f1nn

+0

@ f1nn la tua soluzione funziona. Ho provato la tua "risposta accettata", ma questo non sembra funzionare. –

2

Questa soluzione non ha funzionato per me, però, il seguente fatto ...

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

Prova:

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