add infinity scroll frontpage and paged
This commit is contained in:
53
js/load-main-scroll.js
Executable file
53
js/load-main-scroll.js
Executable file
@@ -0,0 +1,53 @@
|
||||
jQuery(function($) {
|
||||
var loading = false;
|
||||
var loadCount = 0;
|
||||
var maxLoads = 5;
|
||||
|
||||
function loadMorePosts() {
|
||||
if (loading || loadCount >= maxLoads) return;
|
||||
|
||||
var scrollTop = $(window).scrollTop();
|
||||
var windowHeight = $(window).height();
|
||||
var documentHeight = $(document).height();
|
||||
|
||||
if (scrollTop + windowHeight >= documentHeight - 200) {
|
||||
loading = true;
|
||||
|
||||
var data = {
|
||||
'action': 'loadmore',
|
||||
'query': my_load_more_params.posts,
|
||||
'page': my_load_more_params.current_page
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
url: my_load_more_params.ajaxurl,
|
||||
data: data,
|
||||
type: 'POST',
|
||||
beforeSend: function(xhr) {
|
||||
$('.articles-preview__show-next').text('Загрузка...');
|
||||
},
|
||||
success: function(data) {
|
||||
if (data) {
|
||||
$('.articles-preview').append(data);
|
||||
my_load_more_params.current_page++;
|
||||
loadCount++;
|
||||
|
||||
ym(96621494, 'hit', location.pathname + '?page=' + my_load_more_params.current_page);
|
||||
|
||||
if (my_load_more_params.current_page == my_load_more_params.max_page || loadCount >= maxLoads) {
|
||||
$(window).off('scroll', loadMorePosts);
|
||||
$('.articles-preview__show-next').remove();
|
||||
} else {
|
||||
loading = false;
|
||||
}
|
||||
} else {
|
||||
$(window).off('scroll', loadMorePosts);
|
||||
$('.articles-preview__show-next').remove();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
$(window).on('scroll', loadMorePosts);
|
||||
});
|
||||
Reference in New Issue
Block a user