jQuery或JavaScript:确定图像何时完成加载
如何从服务器或浏览器缓存中检测图像何时完成加载? 我想在同一个标签中加载各种图像,并检测新图像的加载何时完成。
谢谢。
$('img').on('load', function() { // do whatever you want });
只有在所有元素(包括图像)完全加载后, onload
文档的事件才会触发。
单个图像完全加载后, onload
的事件将触发。
所以你可以使用jQuery对象或DOM的addEventListener(以及IE的attachEvent)为这些事件附加一个监听器
嗯,这是我昨天遇到的一个老话题。 我正在使用backbone.js和require.js并且调整我的布局总是会导致包含图像的视图出现问题。
因此,我需要一种方法来了解最后一个图像何时加载以调整布局大小。 上面提到的所有解决方案在我的案例中都不起作用。 经过几个小时的调查后,我找到了最终解决方案:
http://sofzh.miximages.com/javascript/pp screenshot-with-shadow.png http://img547.imageshack.us/img547/9681/yih.png
每个人都提到应该在设置为src之前触发该事件。
但是如果您不想担心它,可以使用oncomplete
事件(即使使用缓存的图像也会触发)来触发onload
,如下所示:
$("img").one("load", function() { // do stuff }).each(function() { if(this.complete) $(this).load(); });
使用jQuery,您不必担心向后兼容性(例如: IE
img.height>0
)