有没有机会让这两个插件一起工作?
现在,如果我在带有图像的 div 中使用 iscroll,延迟加载将不会检测图像何时可见。
Thanks.
EDIT:
正如评论之一所述,我尝试在滚动上应用延迟加载,如下所示:
onScrollMove: function () {
$("img").lazyload();
$('img').on('load',function(){myScroll.refresh();});
}
为了正确工作,我想我必须将相同的内容应用于 onBeforeScrollEnd:
onBeforeScrollEnd: function () {
$("img").lazyload();
$('img').on('load',function(){myScroll.refresh();});
}
但是这个解决方案是否会影响性能(因为它不断地对所有图像应用延迟加载,并在加载图像时刷新以重新适应加载的图像宽度/高度)?
我真的很关心这里的性能,因为我将有一个容器滚动器,在所有带有图像的主题内有几个(比方说 30 个)滚动器。
我还可以做些什么?
EDIT 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/
它还存在一个问题,如果第一张图像从一开始就可见,则延迟加载将不会加载该图像。http://jsfiddle.net/U3gYS/1/ http://jsfiddle.net/U3gYS/1/
EDIT 3:
http://jsfiddle.net/pdakD/ http://jsfiddle.net/pdakD/我已经差不多了,请大家帮忙。
在新的小提琴中,问题是:
onBeforeScrollEnd 似乎不起作用。如果我在其中包含 console.log('something'),在我看来,它会在滚动开始时触发。
初始#container 的高度为span+first img。为了使它看起来更好,我添加了一个填充底部(不是太大),并在最后一个图像最终加载时将其删除......我还能做什么?
EDIT 4:
这看起来更好:http://jsfiddle.net/pdakD/1/ http://jsfiddle.net/pdakD/1/.onBeforeScrollEnd 剧照对我来说看起来很糟糕。
我也有这个选择:http://jsfiddle.net/pdakD/1/ http://jsfiddle.net/pdakD/1/这适用于
checkDOMChanges:true
但由于我有多个 iscroller 和 ajax 数据等,我认为这不是一个好主意。
解决方案:这是迈克尔·亚历山大·弗罗因德提出的解决方案的雏形。http://jsfiddle.net/pdakD/11/ http://jsfiddle.net/pdakD/11/它可以工作,但如果你快速“滚动”,就会卡在底部。