jquery – 图像开始下载的事件是什么?

前端之家收集整理的这篇文章主要介绍了jquery – 图像开始下载的事件是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我知道jQuery.load(),当< img>时它被触发了已完成下载.

我想知道浏览器开始下载图像时会触发什么事件.通常在第一时刻,浏览器知道图片的大小,然后需要一段时间(取决于图片大小)来下载图片.

我想在浏览器知道图片大小后立即附上一个事件,或者一旦浏览器开始下载它.

[编辑]

感谢来自@ jfriend00的想法,现在我使用setInterval来检查大小.但不是图片的大小,有些浏览器在完成下载之前就没有告诉.所以我检查容器的大小.一旦浏览器知道图片大小,它将调整容器大小.瓦拉,做完了.

最佳答案
浏览器不会提供特殊事件,它会告诉您最早知道图像大小的时间(在下载图像之前).您所能做的就是设置一个合适的加载处理程序,以了解图像何时完成下载,然后知道其大小.

在完整图像加载之前,在某些浏览器中用于获取高度和宽度的强力方法是轮询加载图像以查找.width和.height的存在.在Chrome中的this jsFiddle中,有时在onload()事件触发之前可用.我没有在其他浏览器中测试过这个.

如果你去一个onload处理程序的路由,你的图像标记特定于.src是在页面的HTML中,确保你在加载时得到通知的唯一方法是放置一个内联图像处理程序,以便处理程序是从一开始就安装:

尝试从页面javascript附加事件处理程序可能为时已晚(图像加载完毕后).浏览器不提供中间事件信息(例如,当它知道大小,但尚未完成下载图像时).

对于动态创建的图像对象(您在javascript中创建的图像对象),可以在创建对象时为load事件附加侦听器.

var img = new Image();
img.onload = function() {
    // the image is now loaded here and height and width are known
};
img.src = "xxxx.jpg";

注意:使用动态创建的图像对象执行此操作时,必须在设置.src值之前设置onload处理程序.在IE的某些版本中,如果图像被缓存,则在设置.src值时会立即触发load事件,因此如果首先设置.src然后设置onload处理程序,那么如果图像处于打开状态,您将错过onload事件浏览器缓存.

原文链接:/jquery/428107.html

猜你在找的jQuery相关文章