forked from Ponysearch/Ponysearch
[fix] load new page with infinite scroll if there is no scrollbar - fixes #759
This commit is contained in:
parent
2621c24cc7
commit
65cae85735
1 changed files with 33 additions and 17 deletions
|
@ -1,24 +1,40 @@
|
||||||
|
function hasScrollbar() {
|
||||||
|
var root = document.compatMode=='BackCompat'? document.body : document.documentElement;
|
||||||
|
return root.scrollHeight>root.clientHeight;
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadNextPage() {
|
||||||
|
var formData = $('#pagination form:last').serialize();
|
||||||
|
if (formData) {
|
||||||
|
$('#pagination').html('<div class="loading-spinner"></div>');
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: './',
|
||||||
|
data: formData,
|
||||||
|
dataType: 'html',
|
||||||
|
success: function(data) {
|
||||||
|
var body = $(data);
|
||||||
|
$('#pagination').remove();
|
||||||
|
$('#main_results').append('<hr/>');
|
||||||
|
$('#main_results').append(body.find('.result'));
|
||||||
|
$('#main_results').append(body.find('#pagination'));
|
||||||
|
if(!hasScrollbar()) {
|
||||||
|
loadNextPage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
var win = $(window);
|
var win = $(window);
|
||||||
|
if(!hasScrollbar()) {
|
||||||
|
loadNextPage();
|
||||||
|
}
|
||||||
win.scroll(function() {
|
win.scroll(function() {
|
||||||
|
$("#pagination button").css("visibility", "hidden");
|
||||||
if ($(document).height() - win.height() - win.scrollTop() < 150) {
|
if ($(document).height() - win.height() - win.scrollTop() < 150) {
|
||||||
var formData = $('#pagination form:last').serialize();
|
loadNextPage();
|
||||||
if (formData) {
|
|
||||||
$('#pagination').html('<div class="loading-spinner"></div>');
|
|
||||||
$.ajax({
|
|
||||||
type: "POST",
|
|
||||||
url: './',
|
|
||||||
data: formData,
|
|
||||||
dataType: 'html',
|
|
||||||
success: function(data) {
|
|
||||||
var body = $(data);
|
|
||||||
$('#pagination').remove();
|
|
||||||
$('#main_results').append('<hr/>');
|
|
||||||
$('#main_results').append(body.find('.result'));
|
|
||||||
$('#main_results').append(body.find('#pagination'));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue