JQuery在显示之前加载div中的所有图像

我想在实际显示它们之前加载div中的每个图像。 我有类似的东西:

起初我尝试过这样的事情:

 $('div img').load(function() { $('div img').show(); }); 

或这个:

 $('div').find('img').load(function() { $('div img').show(); }); 

不幸的是,这不起作用,因为一旦浏览器加载甚至只有一个图像,它就会触发事件。 有关如何首先加载所有内容的任何想法? 谢谢!

您可以跟踪已加载的图像数量:

 var $images = $('div img'), preloaded = 0, total = $images.length; $images.load(function() { if (++preloaded === total) { // Done! } }); 

遗憾的是,以跨浏览器兼容的方式执行此操作并不容易。 但幸运的是,有2个插件可以使它无痛。

检查waitforimages和imagesloaded

然后你可以这样做:

 $('div').waitForImages(function(){ $(this).find('img').show(); }); 

试试这个http://chipsandtv.com/articles/jquery-image-preload

首先,现代浏览器可以同时执行6请求=>不要在加载时加载这么多图像。 如果你有很多图像,你可以在后面的’src =“”’或非设置的“src”属性设置图像,并在第一次加载图像后设置

其次,您可以使用检查“图像已加载”

  document.getElementById('#imageId').complete == !0 

您可以检查具有最大尺寸的图像或DOM中的最后一个图像,以确保加载了其他图像。

希望它会帮助你。

这对我有用:

 $(document).ready(function () { $('#div with images').hide(); }); $(window).load(function () { $('#div with images').show(); });