jScrollPane - это потрясающий плагин jQuery, который изменяет полосы прокрутки браузера по умолчанию.Я разрабатываю приложение чата, которое будет использовать jScrollPane.Пока он отлично работает, за исключением того факта, что я не могу определить максимальную высоту прокрутки.Вот что я пытаюсь сделать:
$(function ()
{
$('#chatPane').jScrollPane();
var api = $('#chatPane').data('jsp');
setInterval(function ()
{
$.ajax(
{
url: "Home/GetMessage",
type: "POST",
success: function (response)
{
// This next line is where the issue occurs. I need to check if the current scroll position is equal to the max scroll position. This is to implement the auto scroll if the user has scrolled to the bottom of the chat.
var atBottom = (api.getContentPane().getContentPositionY() == api.getContentPane().getMaxScrollHeight()??????);
api.getContentPane().append(response);
api.reinitialise();
if (atBottom)
api.scrollToBottom();
},
error: function (xhr, textStatus, errorThrown)
{
alert(textStatus);
}
});
}, 1000);
});
getMaxScrollHeight не существует.Мне нужен какой-то способ определения максимальной высоты прокрутки.
РЕДАКТИРОВАТЬ: Я получил его для работы со следующими изменениями в функции успеха ajaxНо если кто-нибудь знает лучший способ, чем прокрутка вниз, получение текущей позиции, а затем прокрутка назад к предыдущей позиции, это будет высоко ценится.
success: function (response)
{
var currentPosition = api.getContentPositionY();
api.scrollToBottom();
var maxPosition = api.getContentPositionY();
api.scrollToY(currentPosition);
var atBottom = (currentPosition == maxPosition);
api.getContentPane().append(response);
api.reinitialise();
if (atBottom)
api.scrollToBottom();
}