
Envoyé par
ebocha
j ai fais un chat et j affiche les message dans une balise div.
Et pour ce faire, tu appelles périodiquement (toutes les quelques secondes, je suppose) la fonction getMessages().
Ton problème étant que c'est cette même fonction qui replace le scroller en bas (comme tu nous l'avais demandé
).
Je te proposais donc, en variable globale
var blnScroll = true; // Autorise (ou pas) le scroll auto
gérée au niveau du div "chat" :
<div id="chat" ... onfocus="blnScroll=false;" onblur="blnScroll=true;"
et pris en compte dans ta fonction :
1 2 3 4 5 6 7 8
| function getMessages()
{
new Ajax.Updater( 'chat', 'messages.php', {
onSuccess: function() { window.setTimeout( getMessages, 1000 );
if (blnScroll) // Ne positionne le scroll en bas que lorsque le div "chat" n'a pas le focus
document.getElementById("chat").scrollTop=document.getElementById("chat").scrollHeight;}
} );
} |
A+
Partager