2012-06-22 15 views
12

Tengo una clase div = 'mensajes'. Agrego a esta fecha div través jQuery.append() Aquí están los estilos:Div de autoscroll con jQuery en la parte inferior después de agregar

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

Para el desplazamiento automático que utilizo esta función:

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

Acerca de ~ 20 mensajes está desplazando normalmente, pero después de que se 'cuelga', los mensajes nuevos no se desplazan. Versión de Chrome 19.0.1084.56. ¿Qué estoy haciendo mal? Gracias!

+0

¿Podría proporcionar el código HTML o mejor aún crear un caso de prueba en [jsFiddle] (http://jsfiddle.net)? – AbstractChaos

+0

'# messages' y' .messages'- ¿los confundiste? – Andreas

Respuesta

8

Cambio

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

a

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

en realidad, ahora (Esto funcionó: $ ('# messages'). Animate ({"scrollTop": $ ('# messages') [0] .scrollHeight}, "fast"); He intentado responder el mío pregunta pero no se muestra – f1nn

+0

@ f1nn, su solución funciona. Probé su 'respuesta aceptada', pero parece que no hace el trabajo. –

2

Esta solución no funcionó para mí, sin embargo, hizo la siguiente ...

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

Por favor, intente:

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