首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery imagesLoaded逐个图像

jquery imagesLoaded逐个图像
EN

Stack Overflow用户
提问于 2013-01-28 04:47:48
回答 5查看 4.2K关注 0票数 2

我一直在寻找一个jquery解决方案,它在执行某些操作(fadein等)之前监听每个图像(从一组图像中)何时被加载。

使用imagesLoaded,我已经设法在加载所有图像时做到了这一点,但我希望它在加载后独立于其他图像的状态在每个图像上执行。

我认为使用imagesLoaded可以做到这一点,但还没有成功实现。有没有人?

其他解决方案?

EN

回答 5

Stack Overflow用户

发布于 2013-08-09 15:31:51

收听imagesLoaded进度事件。

(https://github.com/desandro/imagesloaded)

代码语言:javascript
复制
imagesLoaded("img").on("progress", function(imagesLoadedInstance, image) {
    // Code for each image
});
票数 5
EN

Stack Overflow用户

发布于 2013-01-28 05:15:38

您可以将函数直接附加到DOM,如:<img onload="executeThisImage(imgId);" />

或者,您可以像mipe34建议的那样,使用jQuery直接将负载绑定到它:

代码语言:javascript
复制
$("#myImage").load(function() { ... });
票数 0
EN

Stack Overflow用户

发布于 2013-01-28 05:15:45

尝试使用jQuery:

代码语言:javascript
复制
$("#myImage").bind("load", function () { $(this).fadeIn(); });

或者用不同的语法相同:

代码语言:javascript
复制
$("#myImage").load(function(event) {
    $(this).fadeIn();
});

也可以在SO上查看这个有趣的主题:

第二个非常有趣。有一个解决方案,如何使它即使在图像被浏览器缓存时也能工作。

遵循这个主题的最佳答案。我认为最好的解决方案如下:

代码语言:javascript
复制
$("#myImage").one('load', function() {
  $(this).fadeIn();
}).each(function() {
  if(this.complete) $(this).load();
});

这里使用one进行事件绑定,以确保事件处理程序最多执行一次。each循环将确保如果图像被缓存,它将在其上触发load事件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14552087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档