繁体   English   中英

当没有更多页面要加载时如何隐藏加载器

[英]How to hide loader when there is no more page to be loaded

在我正在构建https://vase.ai/blog/的该网站中,我正在使用无限滚动脚本将几页变成一页进行滚动。

当没有更多页面要加载时,我想隐藏加载器(正在旋转的加载器)。 我认为以下代码可以帮助我检测到错误( Failed to load resource: the server responded with a status of 404 (Not Found))并执行隐藏。 但是,它不起作用。 我错过了什么吗?

window.addEventListener('error', function(e) {
  $('loading').fadeOut()
}, true);

我用来加载更多的代码:

//implementing infinite scrolling
$grid.infinitescroll({
  // Pagination element that will be hidden
  navSelector: '.pagination',

  // Next page link
  nextSelector: '.pagination a',

  // Selector of items to retrieve
  itemSelector: '.grid-blog',
},

// Function called once the elements are retrieved
function(new_elts) {
  var elts = $(new_elts).css('opacity', 0);

  elts.animate({opacity: 1});
  $grid.packery('appended', elts);

  $('.target-resize').textfill({
    maxFontPixels: 36,
    changeLineHeight:false
  })

  $grid.packery({
    itemSelector: '.grid-blog',
    gutter: 20,

  })
});     

没有用于加载内容的http调用代码,很难回答您的问题。 但,

1)您可能有一个错误,仍然有要加载的内容,在这种情况下,即使内容仍在加载中,您的加载器也会消失。

2)您应该有一些东西可以打电话给您的网站,您必须加载。 网址数组或其他任何内容,当所有内容加载完毕后,您可以使用它来隐藏您的加载器。

3)您应该在某处具有进行httpcall的功能以获取您的内容。 该函数应该有一个回调。 在此回调中,您应该能够捕获一个错误,然后隐藏您的加载程序。

我无法提供您示例中显示的代码量的更多信息。


编辑:查看代码后,您可以尝试执行以下操作:

// Function called once the elements are retrieved
function(new_elts) {
    if(!new_elts) {
        $('loading').fadeOut();
        return;
    }
...
}

我认为这不是正确的解决方案,您的插件应该具有内置函数来停止调用新页面,但是由于我看不到进行http调用或任何URL数组/迭代器的函数,因此困难的顶部可以帮助您。

您应该将此演示检查到: https : //codepen.io/desandro/pen/rwwoGe

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM