inf scroll in chat-content

This commit is contained in:
barisusakli
2016-09-20 16:58:50 +03:00
parent 6c7fe6b5cf
commit 55396ca442
4 changed files with 82 additions and 10 deletions

View File

@@ -81,6 +81,39 @@ define('forum/chats', [
Chats.addSinceHandler(ajaxify.data.roomId, $('.expanded-chat .chat-content'), $('.expanded-chat [data-since]'));
Chats.addRenameHandler(ajaxify.data.roomId, $('[component="chat/room/name"]'));
Chats.addScrollHandler(ajaxify.data.roomId, ajaxify.data.uid, $('.chat-content'));
};
Chats.addScrollHandler = function(roomId, uid, el) {
var loading = false;
el.off('scroll').on('scroll', function() {
if (loading) {
return;
}
var top = (el[0].scrollHeight - el.height()) * 0.1;
if (el.scrollTop() >= top) {
return;
}
loading = true;
socket.emit('modules.chats.getMessages', {roomId: roomId, uid: uid, start: $('.chat-content').children('[data-index]').first().attr('data-index')}, function(err, data) {
if (err) {
return app.alertError(err.message);
}
messages.parseMessage(data, function(html) {
var currentScrollTop = el.scrollTop();
var previousHeight = el[0].scrollHeight;
html = $(html);
el.prepend(html);
html.find('.timeago').timeago();
html.find('img:not(.not-responsive)').addClass('img-responsive');
el.scrollTop((el[0].scrollHeight - previousHeight) + currentScrollTop);
loading = false;
});
});
});
};
Chats.addEditDeleteHandler = function(element, roomId) {