【发布时间】:2016-05-06 14:29:11
【问题描述】:
我想创建一个聊天室,它每 x 毫秒自动更新一个 div,其中发布的新消息出现在 #messagearea div 中,滚动到底部。这是我用来执行此操作的伪代码。
function fetch_messages{
loadmsgs();
$("#messagearea").animate({ scrollTop: 0}, 300);
}
所以每次加载新消息时,它都会向下滚动到底部。
但这带来了一个问题。它不允许用户向上滚动,因为每次在页面上获取和更新消息时它都会一直滚动到底部。当用户尝试向上滚动时,javascript 会每隔 1000 毫秒强制滚动条向下到底部。
所以我想要...
-
#messagearea每 1000 毫秒更新一次 - 当出现新消息时,
#messagearea滚动到底部(如果用户已经滚动到底部) - 即使每次更新
#messagearea时 Web 浏览器一直滚动到底部,用户仍可以向上滚动
更新整个#messagearea,这是个坏主意,还是我必须更新.append?
【问题讨论】:
-
如果滚动条不在底部,您可以随时考虑,不要移动滚动条。
-
相反,就像 facebook 所做的那样,在信使框的顶部放置一个小的覆盖层,说明存在新消息,或者类似的东西
-
@OliverQueen 我试图这样做,但我无法让它工作。 gist.github.com/desbest/9a8633b54b19fcfaebb93d78714292f2
-
你能发布你是如何将消息附加到 loadmsgs 中的 div 的吗?
标签: javascript jquery chat