在我正在构建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,
})
});
答案 0 :(得分:1)
如果没有为了加载你的内容而进行http调用的代码,很难回答你的问题。但是,
1)您可能有错误,仍然有要加载的内容,在这种情况下,即使内容仍在加载,您的加载程序也会消失。
2)你应该有一些东西,你的网站需要加载。 一个url或任何东西的数组,当你加载了所有内容时,你可以使用它来隐藏你的加载器。
3)你应该在某个地方使用httpcalls来获取你的内容。这个函数应该有一个回调。在此回调中,您应该能够捕获错误,然后隐藏您的加载程序。
我无法通过您在示例中显示的代码数量向您提供更多信息。
编辑:查看代码后,您可以尝试:
// Function called once the elements are retrieved
function(new_elts) {
if(!new_elts) {
$('loading').fadeOut();
return;
}
...
}
我不认为这是正确的解决方案,你的插件应该有一个内置函数来停止调用新页面,但是因为我没有看到进行http调用的函数,或者任何数组/迭代器网址,很难帮助你。
您应该将此演示检查到:https://codepen.io/desandro/pen/rwwoGe