mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-15 18:26:15 +01:00
inf scroll in chat-content
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user