我正在使用Mika Tuupola的延迟加载插件http://www.appelsiini.net/projects/lazyload 在向下滚动长图像库时延迟加载图像。问题是在10个图像之后,我使用无限滚动,所以我获取接下来的10个图像,并通过ajax附加它们。延迟加载不再适用于下一批附加图像。
这是一个相当重javascript的图像库,因此对于其他所有内容(如工具提示、模式覆盖等),我一直在使用jQuery的delegate()绑定到ajax插入的元素。延迟加载插件的问题是我不确定绑定到哪个事件。
假设我想用一个“lazy”类延迟加载图像。我将写下:
$("img.lazy").lazyload({
effect: "fadeIn"
});
它适用于前10个图像,但在通过ajax插入更多图像后停止工作。我唯一能想到的就是在加载事件上使用委托,如下所示:
$(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();
除了Kevin B的答案,如果您想避免ajaxStopjQuery现在为此定义了一个when()
函数
// the following code will be executed when the ajax request resolve.
// the ajax function must return the value from calling the $.ajax() method.
$.when(load_new_image(1), load_new_image(2), load_new_image(3)).done(function(i1, i2, i3){
if($('img.lazy').length){
$('img.lazy').lazyload({
effect:'fadeIn'
}).removeClass('lazy').addClass('lazyloaded');
}
});
function load_new_image(image_id) {
return $.ajax({
url: "someUrl",
dataType: "json",
data: yourJsonData,
...
});
}
发件人:http://api.jquery.com/jQuery.when/
我会使用ajaxStop
方法。
$("img.lazy").lazyload({
effect: "fadeIn"
}).removeClass("lazy");
$(document).ajaxStop(function(){
$("img.lazy").lazyload({
effect: "fadeIn"
}).removeClass("lazy");
});
防止双重初始化。
问题内容: 我正在使用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字节,但是图像是个问题。.因此,我正在寻找如何延迟加载图像的方法。由于与该网站不同,我的页面具有分页功能,因此我认为加载仅对页面可见的图像是一种解决方