导读:做瀑布流图片显示功能时遇首次加载异常,刷新后正常。经分析或因图片未加载完就计算高度所致。尝试等待图片加载完毕再计算,问题解决。分享判断图片全部加载完成的代码:创建延迟对象数组,遍历图片元素,绑定加载完成事件到各延迟对象,用 `$.when` 等待所有图片加载完成后执行后续操作。该方案有效解决了因图片未完全加载导致的布局计算错误问题。
今天在做一个功能时(将图片用瀑布流的方式显示,这个模块是前端自己写的代码 ,就是重复造轮子,没有使用别人做好的插件),发现第一次加载,都显示不对,如下图:

但是刷新下页面又可以了,这到底是什么原因?
后来分析,有可能是图片没有加载完 就计算了高度,尝试等待图片加载完后在计算,发现就成功了,如下图:

最后,分享判断图片全部加载完的代码:
var defereds = [];
var $imgs = $('.pic_tuji');
$imgs.each(function() {
var dfd = $.Deferred();
$(this).load(dfd.resolve);
defereds.push(dfd);
});
$.when.apply(null, defereds).done(function() {
//这里图片加载完成,写你的代码
});
关键词: 瀑布流
图片
高度
页面
原因
解决方法
苏公网安备 32111202000338号