Проблема, возникающая у меня, заключается в том, когда элемент получает добавление к списку, браузер пытается автоматически прокручивать элемент в поле зрения, что вызывает очень заметный переход.Непрерывно добавлять элементы к списку, не влияя на положение прокрутки
Я проверяю, если пользователь 100px от верхней части дока:
var scrollTop = function() {
var scrollPos = $(window).scrollTop(),
direction = window.direction == 'up',
history = session.lastSessionEntry();
if (direction && scrollPos < 100) {
if (history > 1) {
getPreviousPage();
} else {
prependHero();
}
}
};
Тогда предыдущая страница либо загружена из LocalStorage или API:
var getPreviousPage = function() {
var page = session.lastSessionEntry() - 1,
cached = isCached([localStorage.getItem(page)]);
if (cached) {
renderResponse('prepend', localStorage.getItem(page));
} else {
$.ajax({
url: '/collections/paginated_collection/?collection_name='+ settings.collection_name +'&page='+ page +'&results_per_page=' + settings.results_per_page,
success: function (response, xhr) {
renderResponse('prepend', response);
},
});
}
};
Наконец, страница отображается в DOM:
var renderResponse = function(method, response) {
var el = $('<div></div>'),
output = el.html(response),
page = output.find('section').attr('data-section');
if (!$('section[data-section="'+ page +'"]').length && response != 'undefined') {
if (method == 'append')
settings.render_outlet.append(response);
else
settings.render_outlet.prepend(response);
clearLoader();
} else {
return
}
};
Было бы здорово, если бы вы смогли добиться чего-то подобного без холста, очевидно:
http://engineering.flipboard.com/2015/02/mobile-web/
Я знаю, что это трудно, чтобы помочь без функционального кода, но если кто-то может упасть некоторые теоретические знания на меня или просто вообще мне точку в правильном направлении, я бы очень Аппетит его.
Заранее спасибо.
К сожалению, поведение прокрутки по умолчанию невозможно предотвратить. – macksol
@macksol Как насчет сохранения положения прокрутки в URL-адресе, а затем восстановления его на загрузке страницы? – Tek