restore scroll position after loading previous messages

This commit is contained in:
Davide Bertola 2016-07-12 17:26:55 +02:00
parent 4920cfeed9
commit 6af8da2106
1 changed files with 12 additions and 4 deletions

View File

@ -348,11 +348,19 @@ $(function() {
var documentFragment = buildChannelMessages(data.chan, data.messages); var documentFragment = buildChannelMessages(data.chan, data.messages);
var chan = chat var chan = chat
.find("#chan-" + data.chan) .find("#chan-" + data.chan)
.find(".messages") .find(".messages");
.prepend(documentFragment)
.end(); // get the scrollable wrapper around messages
var scrollable = chan.closest(".chat");
var heightOld = chan.height();
chan.prepend(documentFragment).end();
// restore scroll position
var position = chan.height() - heightOld;
scrollable.scrollTop(position);
if (data.messages.length !== 100) { if (data.messages.length !== 100) {
chan.find(".show-more").removeClass("show"); scrollable.find(".show-more").removeClass("show");
} }
}); });