LazyLoad图像直到滚动后才出现

时间:2012-11-23 20:52:46

标签: jquery webkit lazy-loading

我正在使用jQuery的lazyload插件。

它工作正常,除了一个问题:在滚动之前,图像src没有被换出数据原件。一旦你滚动,甚至一点点,图像加载 - 但我需要它们在页面准备好时加载。

注意:这纯粹是Chrome / Safari问题。我在Firefox或Opera,甚至IE9中都没有这个问题。

我已经尝试过按照这篇文章的建议: http://sumanrs.wordpress.com/2011/02/08/jquery-lazy-loading-images-no-scrolling/ 这表明基本的jQuery库具有延迟加载的功能而无需插件。这似乎并非如此,因为图像只是在初始页面加载时加载。

非常感谢任何见解!

9 个答案:

答案 0 :(得分:16)

您的图像很可能没有设置宽度和高度。 Webkit浏览器将在document.ready上看到零宽度和高度的图像。这意味着jQuery会认为图像不可见。 Lazy Load默认忽略不可见的图像。你有三个选择。

  1. 修复HTML以在图像上显示宽度和高度属性。
  2. skip_invisible设为false
  3. 使用插件的atleast version 1.8.3

答案 1 :(得分:6)

 $(window).resize();

帮助我。

答案 2 :(得分:4)

解决了我自己的问题:你必须在图像上设置高度和宽度!

答案 3 :(得分:3)

试试这个:

$('img.lazy').lazyload();
$(window).scroll();

答案 4 :(得分:3)

我有类似的问题。阈值选项为我解决了这个问题:

$("img.lazy").lazyload({
    threshold : 400
});

答案 5 :(得分:1)

对我来说问题是我在$('img.lazy').lazyload()

中拨打了ready

改为在load内设置。

$(window).load(function(){
  $('img.lazy').lazyload()
});

答案 6 :(得分:0)

您可以模仿/触发滚动事件以触发对页面加载的影响:http://api.jquery.com/scroll/

答案 7 :(得分:0)

我使用了延迟加载jquery插件,但加载是一个问题。 (即。)它在crome浏览器中更流畅。但不幸的是,它在mozilla火狐中无法正常工作。我从mozilla fire fox收到此通知(此页面上的脚本可能正忙,或者它可能已停止响应。您可以立即停止脚本,在调试器中打开脚本,或让脚本继续运行。)。所以只需回复任何更好的想法,以避免这个错误。

答案 8 :(得分:0)

我遇到了同样的问题。

解决了这个问题:

  

只需从页面上的第一张图片中替换“懒惰”类。

- )