当前位置: 首页 > 面试题库 >

将图像延迟加载绑定到ajax请求后插入的新图像

从开济
2023-03-14
问题内容

我正在使用Mika
Tuupola的“延迟加载”插件http://www.appelsiini.net/projects/lazyload,以在向下滚动长图像库时延迟加载图像。问题是在10张图像之后,我使用了无限滚动,所以我获取了接下来的10张图像,并通过ajax附加了它们。延迟加载不再适用于下一批附加图像。

这是一个非常漂亮的javascript图片库,因此对于其他所有内容(例如工具提示,模式叠加等),我一直在使用jQuery的委托()绑定到插入了ajax的元素。延迟加载插件的问题是我不确定要绑定到哪个
事件

所以说我想用“ lazy”类来延迟加载图像。我会这样写:

$("img.lazy").lazyload({ 
    effect: "fadeIn" 
});

并且适用于前10张图片,但在通过Ajax插入更多图片后停止工作。我唯一想到的就是在 load 事件上使用委托,如下所示:

$(document).delegate("img.lazy", "load", function(event) {  
    $(this).lazyload({ 
         effect: "fadeIn" 
    });     
});

但这破坏了一切。谢谢!

编辑: 我用来加载更多记录的jQuery(这是一个Rails应用程序):

$(window).scroll(function() {
    var url;
    url = $(".pagination .next_page").attr("href");
    if (url && $(window).scrollTop() > $(document).height() - $(window).height() - 50) {
    $(".pagination").html("<p>loading more images...</p>");
    return $.getScript(url);
    }
});

$(window).scroll();

问题答案:

我会使用该ajaxStop方法。

$("img.lazy").lazyload({ 
    effect: "fadeIn" 
}).removeClass("lazy");
$(document).ajaxStop(function(){
    $("img.lazy").lazyload({ 
        effect: "fadeIn" 
    }).removeClass("lazy");
});

removeClass 防止双重初始化。



 类似资料:
  • 我正在使用Mika Tuupola的延迟加载插件http://www.appelsiini.net/projects/lazyload 在向下滚动长图像库时延迟加载图像。问题是在10个图像之后,我使用无限滚动,所以我获取接下来的10个图像,并通过ajax附加它们。延迟加载不再适用于下一批附加图像。 这是一个相当重javascript的图像库,因此对于其他所有内容(如工具提示、模式覆盖等),我一直在

  • 问题内容: 在我的应用程序中,我需要从URL下载很多图片并将其显示在gridView中。(可以在1-200张照片之间)。我不想一次下载所有图片。我读到了关于延迟下载的信息,我的问题是:我只能得到Json的一部分,以其他线程下载图片, 并且只有当用户向下滚动 gridView时,我才继续到Json的其他部分,并且等等吗? 编辑:再次嗨。我想在此gridView中实现多选,而我很难在适配器的getVi

  • 问题是:PageSpeedInsights说图像没有被延迟加载,留档说img标签应该被“data-page espeed-laily-src”属性替换(它没有这样做)。 pagespeed.conf: 超文本标记语言: 它正在转换png图像,我看到了“X-Mod-Pagespeed”标题,所以我确信模块在那里。 /pagespeed_admin显示“Lazyload Images”过滤器已启用。o

  • 我想做一个reactjs页面懒惰加载图像。因此,我调用lazyLoadImages()内部的组件didMount()。我发现位于浏览器选项卡的浏览器加载指示器仍然一路旋转,直到加载所有图像。这让我认为我所做的并没有提供真正的懒惰加载图像体验。 有趣的是,如果我在setTimeout中用一个不太短的timeout参数包装lazyLoadImages(),例如100ms(不是0或甚至50ms),那么页

  • 我正在使用Mika Tuupola的jQuery延迟加载。 是否可以在每次延迟加载图像后调用函数。 我打算做的是跟踪图像的浏览次数。因此,如果图像是延迟加载的,这意味着用户已经看到了图像,我将通过在后台执行HTTP GET,将数据库中的计数器增加1。

  • 问题内容: 我正在开发一个eshop。在基于类别的产品页面上,我放置了一些基于javascript的过滤器。但是,如果类别具有很多产品,则会出现问题。该链接具有与我相似的功能… 这个页面多么缓慢,却超过2mb !!! 对我来说,每个产品都需要一半的K字节,但是图像是个问题。.因此,我正在寻找如何延迟加载图像的方法。由于与该网站不同,我的页面具有分页功能,因此我认为加载仅对页面可见的图像是一种解决方