diff options
| author | Noémi Ványi <kvch@users.noreply.github.com> | 2020-04-15 23:33:16 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-04-15 23:33:16 +0200 |
| commit | fcb44c654228a210ed66533f6aa7847035cbf985 (patch) | |
| tree | c681cc52463ae6fab9f68c36e4f1edff6df84261 /searx/static/plugins/js/infinite_scroll.js | |
| parent | 4f90fb6a9236a9699e80c249153ba372bf308cb8 (diff) | |
| parent | 4eddbca81d7a9f7d2c8b7059a2b4d0787804cbb0 (diff) | |
Merge branch 'master' into fix_startpage_ValueError_on_spanish_datetime
Diffstat (limited to 'searx/static/plugins/js/infinite_scroll.js')
| -rw-r--r-- | searx/static/plugins/js/infinite_scroll.js | 50 |
1 files changed, 33 insertions, 17 deletions
diff --git a/searx/static/plugins/js/infinite_scroll.js b/searx/static/plugins/js/infinite_scroll.js index db84a6908..9930880e3 100644 --- a/searx/static/plugins/js/infinite_scroll.js +++ b/searx/static/plugins/js/infinite_scroll.js @@ -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() { var win = $(window); + if(!hasScrollbar()) { + loadNextPage(); + } win.scroll(function() { + $("#pagination button").css("visibility", "hidden"); if ($(document).height() - win.height() - win.scrollTop() < 150) { - 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')); - } - }); - } + loadNextPage(); } }); }); |