【发布时间】:2015-05-03 18:03:39
【问题描述】:
我有一个包含十几张大图的页面:
<div id="gallery">
<img src="1.png" alt="" />
<img src="2.png" alt="" />
...
</div>
由于图像的大小,并行下载会导致延迟过长。
问题:如何顺序加载图片,让2.png在1.png完全加载并显示后才开始加载?
-
我不想要延迟加载(除非你知道一个插件,它总是以相同的顺序加载图像,而不管当前视口如何)
李> 此解决方案:Loading images sequentially 在最新的 Chrome、Firefox、IE 中对我不起作用。它将一次加载所有图像,然后显示它们
这个答案https://stackoverflow.com/a/25774333/525445 中建议的插件有点功能,但它一次发出 2、3 甚至更多请求,所以没有做它应该做的事情
-
然后是这个插件,也在一些答案中提出:http://imagesloaded.desandro.com/ 虽然它是为了别的东西 - 让你知道什么时候加载了所有图像,它做得很好。所以我试着像这样使用它:
var $gallery = $("#gallery");
$gallery.imagesLoaded(函数(){ $gallery.append(''); console.log("图片加载"); }); $gallery.append('');
这里的想法是 - 在 imagesLoaded 事件上动态添加图像。但是,它只会在第一张图片上触发(尽管它也是动态添加的),而第二张则不会。所以上面的代码导致两个图像都显示,但只有 1 个 console.log() 通知
任何建议表示赞赏。
【问题讨论】:
标签: javascript jquery image image-loading