我有一个包含许多大图像的站点,我想将它们的加载延迟到加载较小的 UI 图形之后。我像这样使用html:
<span id="img0" class="preload" data-src="/images/tomato.jpg"></span>
<span id="img1" class="preload" data-src="/images/squash.jpg"></span>
我认为我可以收集“预加载”类的所有实例,然后按 ID 对它们进行排序,然后添加调用图像的 html。
问题是它每次都加载相同的图像。
这是小提琴:http: //jsfiddle.net/nUFUW/
答案:(如上的HTML)。要按其 ID 的顺序加载图像并具有将验证的 html:
jQuery(document).ready(function($) {
$(".preload").each(loadImages);
function loadImages (i, elem) {
var numItems = $('.preload').length;
for (var i = 0; i < numItems; i++) {
$("#img" + i).each(function(){
var thisSource = $(this).data('src');
$(this).html('<img src="' + thisSource + '" alt=""/>');
});
}
} //<end loadImages function>
});
请注意,页面中未用 Span 标签替换的任何图像都将在 Span 之前加载。我想那是因为这一切都发生在“文档准备就绪”触发之前。因此没有必要在 UI 中标记每个图像,只需要标记大图像。现在我的大图像最后加载,这就是我喜欢的方式。:)