0

我正在尝试用 javascript 做一些事情,让我的聊天行为比现在好一点。

由于我使用 PrimeFaces 的投票来更新面板并模拟聊天,因此面板每秒都会更新,因此很难阅读旧消息(更新面板会导致在面板顶部重置滚动条)。

所以我在 , 中添加了一个onscroll事件div,以在用户滚动时停止轮询。

但我需要一种让它重新启动的方法,所以我想到了设置一个计时器并poll.start()在滚动停止后回忆一分钟。

有没有办法做到这一点?

4

1 回答 1

1

我在自己的聊天引擎上所做的是:

当有新消息到达时...

  • 如果用户一直滚动到视图的(新消息)端,则保持滚动锚定在该端。
  • 否则,将卷轴保留在原来的位置。

这可以通过将 的值scrollTop0或进行比较来轻松测试scrollHeight-offsetHeight

于 2012-05-01T14:45:24.090 回答