Jquery LazyLoad加载所有已加载的图像

Jquery LazyLoad加载所有已加载的图像,jquery,lazy-loading,Jquery,Lazy Loading,我无法想象这是怎么开始的,已经好几个月了 在chrome/ff中查看您的网络选项卡-它在页面上一秒钟后加载250多个图像请求。。。它说jquery启动这些请求 就好像LL中的某些东西对哪些图像是可见的感到困惑。。。我尝试了很多选择,但都没有用 使用此LL: 使用此代码: jQuery("img.lazy").lazyload({ effect: "fadeIn", effectspeed: 200, failure_limit: Math.max(jQuery("img").lengt

我无法想象这是怎么开始的,已经好几个月了

在chrome/ff中查看您的网络选项卡-它在页面上一秒钟后加载250多个图像请求。。。它说jquery启动这些请求

就好像LL中的某些东西对哪些图像是可见的感到困惑。。。我尝试了很多选择,但都没有用

使用此LL: 使用此代码:

jQuery("img.lazy").lazyload({
effect: "fadeIn",
  effectspeed: 200,
  failure_limit: Math.max(jQuery("img").length - 1, 0)
});

有什么想法吗?

看起来像是
事件设置。按,它被设置为
滚动
,看起来它加载了滚动上的所有图像

在控制台中,如果执行以下操作:

jQuery('img.lazy').attr('src', ''); //Reset the images
jQuery('img.lazy').lazyload({event: 'hover'}); //Rebind our own
您会注意到它现在在hover上正常工作。所以我相信这只是导致问题的
滚动事件。奇怪的是,我相信
阈值设置应该能解决这个问题,但是我从来没有使用过这个插件,所以我不能完全确定

不过,我希望这至少为您指明了正确的方向,您可以更改事件,或者错开您懒散加载的
img
元素

更新

如果你在控制台中使用类似的“揭幕”插件,它实际上似乎工作正常(在Firefox中,没有占位符):


因此,也许您可以尝试延迟呼叫以揭开面纱。

看起来是
事件设置。按,它被设置为
滚动
,看起来它加载了滚动上的所有图像

在控制台中,如果执行以下操作:

jQuery('img.lazy').attr('src', ''); //Reset the images
jQuery('img.lazy').lazyload({event: 'hover'}); //Rebind our own
您会注意到它现在在hover上正常工作。所以我相信这只是导致问题的
滚动事件。奇怪的是,我相信
阈值设置应该能解决这个问题,但是我从来没有使用过这个插件,所以我不能完全确定

不过,我希望这至少为您指明了正确的方向,您可以更改事件,或者错开您懒散加载的
img
元素

更新

如果你在控制台中使用类似的“揭幕”插件,它实际上似乎工作正常(在Firefox中,没有占位符):

所以也许你可以试着推迟揭幕的电话。

:

加载页面时,您的图像很可能都在视口中。例如,当HTML没有设置图像的维度时,就会发生这种情况

这就是我的问题所在。必须为图像设置最小尺寸,以便它们在加载之前不都是0px高。

:

加载页面时,您的图像很可能都在视口中。例如,当HTML没有设置图像的维度时,就会发生这种情况


这就是我的问题所在。必须为图像设置最小尺寸,以便它们在加载之前不都是0px高。

这实际上与我已经计算的差不多:/-我尝试了阈值选项,似乎没有任何区别。。。我需要系统通过滚动事件工作。它正在工作,只加载可见的图像,然后在向下滚动时加载更多。但后来它就停了。想不出。。。我想我明天会调试更多:)谢谢你的建议。进一步的测试中,我将lazyload初始化脚本完全拉出并加载页面,当然没有加载图像。然后我在控制台中运行init脚本,什么也没发生(好迹象)-然后我在主窗口中滚动。。一次加载所有图像(以及几秒钟的硬浏览器锁定)。。。我最近升级了chrome。。。我想知道这里现在是否有一个bug?另一件需要注意的事情,我破解了打开的LL-有一个helper函数/选择器$(“img:below the fold”)-运行它不会返回任何结果。。。然而,在他的演示上运行它-确实会返回一些元素。。。这意味着LL会以某种方式将整个窗口视为“可见”图像…同样有趣的是,这也有完全相同的问题。。。不知怎的,这页上确实有点乱七八糟的:
setTimeout(function(){jQuery(“img”).defect();},1)在ready()中,它只是一个临时补丁,但这会使页面基本上完全加载,然后在一毫秒后通过JS加载图像。。。用户看不出有多大区别,因为视图中的前9个图像加载速度非常快。这实际上与我已经计算的差不多:/-我尝试了阈值选项,似乎没有任何区别。。。我需要系统通过滚动事件工作。它正在工作,只加载可见的图像,然后在向下滚动时加载更多。但后来它就停了。想不出。。。我想我明天会调试更多:)谢谢你的建议。进一步的测试中,我将lazyload初始化脚本完全拉出并加载页面,当然没有加载图像。然后我在控制台中运行init脚本,什么也没发生(好迹象)-然后我在主窗口中滚动。。一次加载所有图像(以及几秒钟的硬浏览器锁定)。。。我最近升级了chrome。。。我想知道这里现在是否有一个bug?另一件需要注意的事情,我破解了打开的LL-有一个helper函数/选择器$(“img:below the fold”)-运行它不会返回任何结果。。。然而,在他的演示上运行它-确实会返回一些元素。。。这意味着LL会以某种方式将整个窗口视为“可见”图像…同样有趣的是,这也有完全相同的问题。。。不知怎的,这页上确实有点乱七八糟的:
setTimeout(function(){jQuery(“img”).defect();},1)在ready()中,它只是一个临时补丁,但这会使页面基本上完全加载,然后在一毫秒后通过JS加载图像。。。用户看不出有多大区别,因为视图中的前9个图像加载速度非常快。