发送新消息时向下滚动至底部

DN0*_*300 4 html javascript css jquery

我有一个评论框,我使用以下 JS 将滚动设置为底部,并在发布新消息时向下滚动。

window.setInterval(function() {
  var elem = document.getElementById('Commentbox');
  elem.scrollTop = elem.scrollHeight;
}, 500);
Run Code Online (Sandbox Code Playgroud)

它有点有效,当发布新消息时,它会向下滚动,但是当我向上滚动查看旧消息时,它会向下滚动。有没有办法防止这种情况发生?

Sim*_*Sim 5

我不会使用间隔函数向下滚动,因为您的实现每滚动 500 毫秒。我认为你有一个函数,可以添加新消息并在传入消息上调用:

function addMessage() {
   // here you add the new message to DOM
   // ...

   // then you can scroll down once to show the new messages
   var elem = document.getElementById('Commentbox');
   elem.scrollTop = elem.scrollHeight;
}
Run Code Online (Sandbox Code Playgroud)

如果您发布如何添加新消息的代码,我可以更好地帮助您。