我似乎无法理解 imagesLoaded 插件的延迟方法。我不知道如何在我的具体情况下使用它。我正在使用 JSON 从外部来源获取照片。一切都加载到#photographs。我想实现在加载所有照片时隐藏所有内容(显示大型加载器动画);加载 15 张照片后,删除大的加载动画并显示一个小的并继续加载其余的照片。当我所有的照片都加载完毕后,隐藏小加载动画。
我有以下代码,但它当然是错误的,因为只有在加载所有内容时才会调用回调。我正在寻找 .progress() 方法..
$('#photographs').imagesLoaded(function($images) {
var totalAmount = $images.length;
if(($images.length) > 15) {
$("#photographs, #loader").fadeIn("fast");
$("#bigloader").fadeOut("fast");
$("#photographs").gridalicious({
gutter: 2,
animate: true,
effect: 'fadeInOnAppear',
width: 430,
complete: onComplete()
});
} else if(($images.length) == totalAmount) {
$("#loader").fadeOut("fast");
};
});
像这样的东西?
var dfd = $("#photographs").imagesLoaded();
dfd.progress(function( isBroken, $images, $proper, $broken ) {
var totalAmount = $images.length;
if(($proper.length) > 15) {
$("#photographs, #loader").fadeIn("fast");
$("#bigloader").fadeOut("fast");
$("#photographs").gridalicious({
gutter: 2,
animate: true,
effect: 'fadeInOnAppear',
width: 430,
complete: onComplete()
});
}
});
编辑:有关进度方法的信息可以在这里找到https://github.com/desandro/imagesloaded