preload = function() {
var imgList = [];
var imgArr = [];
var imageSize = element.find('img').size();
var loadImgList = element.find('img');
for(i=0; i<imageSize;i++){
imgArr.push($(loadImgList[i]).attr('src'));
}
var total = imgArr.length;
var loaded = 0;
for(var i in imgArr) {
imgList.push($("<img />")
.attr("src", imgArr[i])
.load(function() {
loaded++;
if(loaded == total) {
element.find('.loader').fadeOut('slow');
init();
}
})
);
}
}
答案 0 :(得分:0)
我不知道这是否解决了您的问题,因为您没有说明究竟什么不起作用,但是您需要在之后设置src
来定义处理程序onload
事件。
另请注意,.load()
与jQuery docs:
与图片一起使用时加载事件的注意事项
开发人员尝试使用.load()解决的常见问题 快捷方式是在图像(或集合)时执行函数 图像)已完全加载。有几个已知的警告 这应该注意。这些是:
- 它不能始终如一地工作,也不能可靠地跨浏览器
- 如果图像src设置为,则在WebKit中无法正确触发 和以前一样的src
- 它没有正确地冒泡DOM树
- 对于已经存在于浏览器中的图像,可以停止触发 高速缓存
答案 1 :(得分:0)
为什么不选择no-javascript解决方案?像这样:
<!-- Preload Images -->
<div style="display: none; width:1px; height:1px;">
<img src="1.png" />
<img src="2.png" />
<img src="3.png" />
</div>
对我来说效果很好。 :)