我已经有一个关于此问题的stackoverflow问题,但答案是不够正确的,这次我想以不同的方式解释更多我想要的东西,为不同的产品。
首先,如何加载AJAX聊天消息?
问题
好的,我的聊天目前每隔5,000毫秒加载所有邮件。 因此,当发布新消息并重新加载聊天时,滚动将保持在同一位置,并且下面会显示新消息。
正如你所看到的,在stackoverflow聊天中,它会以某种方式自动上升,当出现新消息时,新消息会以某种方式在聊天的底部滑动,而旧消息只是在它之上而没有任何滚动,但滚动变得更大&我可以向上滚动查看较旧的消息。
肮脏的解决方案1:重新加载后滚动向下滚动到底部,这真的很烦人。
最终解决方案:检查用户的滚动位于底部,如果是 - 加载新消息并立即向下滚动。如果滚动不在聊天的底部,则聊天不会向下滚动。
但是这些解决方案非常糟糕,我想做一些类似stackoverflow聊天的事情,它可以完美地滑动新消息,而无需任何滚动。
此问题是否有有效解决方案?我想我不是唯一有这个问题的人。