2009-11-11 6 views
0

Dans le cadre d'une salle de discussion ajax (en utilisant un framework prototype) je travaille sur je fais défiler l'utilisateur vers le bas chaque fois qu'un message est ajouté en utilisant le js ci-dessous.Faire défiler vers le bas d'un div

Cependant, si l'utilisateur a fait défiler vers le haut et que la date de mise en liste est atteinte, il saute vers le bas.

Y a-t-il un moyen de détecter si l'utilisateur a fait défiler puis désactiver cette fonction, mais aussi de détecter quand l'utilisateur est à nouveau en bas pour que le js puisse être réactivé?

var objDiv = document.getElementById("chat"); 
    objDiv.scrollTop = objDiv.scrollHeight; 

Répondre

1

Avant d'ajouter l'élément, vérifier si objDiv.scrollTop != objDiv.scrollHeight, et, si ce n'est pas égal, ne défile pas.

Vous pouvez également gérer l'événement scroll de l'élément, vérifier si objDiv.scrollTop != objDiv.scrollHeight et, si c'est le cas, définir un indicateur pour empêcher le défilement.

+0

Et si ce n'est pas encore défilable? –

+0

Alors 'scrollHeight' sera <= 'offsetHeight'; vérifiez pour cela et faites défiler. – SLaks

Questions connexes