【发布时间】:2017-04-16 08:56:43
【问题描述】:
我有一个使用 AJAX 实时刷新聊天部分的网站。当用户发送消息时,我正在努力使聊天滚动到底部,但如果来自其他人的消息正在加载,则保持可滚动状态。顺便说一句,这一切都有效。无论如何,每当来自 AJAX 请求的新数据替换当前数据时,它都会滚动到 div 的顶部。我通过在用户滚动时获取 div 的 scrollTop 属性并将 div 的 scrollTop 设置为我在 AJAX 数据进入时保存的上一个 scrollTop 来解决这个问题。当我这样做时,jquery 事件仅在我之后执行并获取 scrollTop已经停止滚动,如果数据刷新时我仍在滚动,这会导致滚动位置发生跳转。有谁知道即使用户仍在滚动过程中我如何获得 scrollTop 值?
提前致谢:)
【问题讨论】:
-
您是否可以不替换 div 的完整内容,而只添加新消息?这样,浏览器应该透明地处理滚动。
-
更好.. 使用虚拟重复。
-
@Pharaoh 我稍后会解决这个问题,但现在我想要一个快速的解决方案,这样我就可以暂时不用担心聊天,而是进入网站的更重要部分。跨度>
标签: javascript jquery html ajax