有没有机会让这两个插件一起工作?现在,如果我在带有图像的 div 中使用 iscroll,则延迟加载不会检测到图像何时应该可见。
谢谢。
编辑:
正如其中一条评论所说,我试图在滚动上应用延迟加载,如下所示:
onScrollMove: function () {
$("img").lazyload();
$('img').on('load',function(){myScroll.refresh();});
}
为了正常工作,我想我必须将同样的方法应用于 onBeforeScrollEnd:
onBeforeScrollEnd: function () {
$("img").lazyload();
$('img').on('load',function(){myScroll.refresh();});
}
但是这个解决方案是否会影响性能(因为它不断地将延迟加载应用于所有图像并在加载它们以重新适应加载的图像宽度/高度时刷新)?我真的很关心这里的性能,因为我将在所有带有图像的主题中拥有一个带有几个(比如说 30 个)滚动条的容器滚动条。我还可以做些什么?
编辑2:
这是我迄今为止所拥有的,我认为效果几乎很好:
onScrollMove: function() {
$('#my_container img').lazyload({
container: $('#my_container'),
threshold: 200
}).on('load', function() {
myScroll.refresh();
});
}
但是这个解决方案的问题是,当myScroll第一次刷新时,lazyload会加载所有的图片..
这是一个小提琴:http: //jsfiddle.net/U3gYS/
而且它还有一个问题,如果从一开始就可以看到第一张图像,那么延迟加载将不会加载该图像。http://jsfiddle.net/U3gYS/1/
编辑 3:
http://jsfiddle.net/pdakD/我差不多有了,请帮忙。在新的小提琴中,问题是:
onBeforeScrollEnd 似乎不起作用。如果我在其中包含一个 console.log('something'),它在我看来就像滚动开始时正在触发一样。
初始#container 的高度是跨度+第一个img。为了让它看起来更好,我添加了一个填充底部(不太大)并在最后一张图像最终加载时将其删除......我还能做什么?
编辑4:
这看起来更好: http: //jsfiddle.net/pdakD/1/.onBeforeScrollEnd Stills 对我来说看起来很糟糕。我也有这个选项:http: //jsfiddle.net/pdakD/1/适用
checkDOMChanges:true
但由于我有多个 iscrollers 和 ajax 数据等,我认为这不是一个好主意。
解决方案: 这是 Michael Alexander Freund 提出的解决方案的 jfiddle。 http://jsfiddle.net/pdakD/11/ 它可以工作,但如果你快速“滚动”,它会卡在底部。