如何使Iscroll和延迟加载的jQuery插件一起工作?(How to make Iscroll

2019-07-30 22:45发布

有没有得到这两个插件一起工作的机会吗? 现在,如果我在与图像的DIV使用iscroll,延迟加载不会检测的图像时,应该是可见的。

谢谢。

编辑:

作为一个评论说,我试图在这样滚动申请lazyload:

onScrollMove: function () {
    $("img").lazyload();
    $('img').on('load',function(){myScroll.refresh();});
}

为了正确地工作,我想我将不得不同样适用于onBeforeScrollEnd:

onBeforeScrollEnd: function () {
    $("img").lazyload();
    $('img').on('load',function(){myScroll.refresh();});
}

但是这种解决方案影响性能(因为它是时间可持续施加lazyload到所有图像和清凉当它们被加载到重新适应加载的图像宽度/高度)? 我真正关心的性能在这里我将有几个容器滚轮(比方说30)内的所有主题的滚动条与图像。 我还可以做些什么?

编辑2:

这是我到目前为止,我认为作品几乎好:

onScrollMove: function() {
    $('#my_container img').lazyload({
        container: $('#my_container'),
        threshold: 200
    }).on('load', function() {
        myScroll.refresh();
    });​
}

但是,这种解决方案的问题是,当myScroll刷新一次,lazyload加载所有图片..

这里是一个小提琴: http://jsfiddle.net/U3gYS/

它也有,如果第一个图像是可见从beggining,lazyload不会加载该图像的问题。 http://jsfiddle.net/U3gYS/1/

编辑3:

http://jsfiddle.net/pdakD/我几乎有它,请一些帮助。 在新的小提琴,问题是:

  1. onBeforeScrollEnd似乎并没有工作。 如果我在它包括的console.log(“东西”),在我看来是当滚动启动它射击。

  2. 初始的#container具有的高度为跨度+第一IMG。 为了使它看起来更好,我加了衬垫底部(不是太大),并删除它时,最后一个图像终于加载中...我还能做什么?

编辑4:

这看起来更好: http://jsfiddle.net/pdakD/1/ .onBeforeScrollEnd剧照看起来对我不好。 我也有这个选项: http://jsfiddle.net/pdakD/1/它适用

checkDOMChanges:true

但是,当我有多个iscrollers和Ajax数据等,我不认为这是一个好主意。

解决方法:这是由迈克尔·亚历山大弗氏提出的解决方案的jfiddle。 http://jsfiddle.net/pdakD/11/它的工作原理,但卡在底部,如果你“滚动”快。

Answer 1:

今天我有同样的问题,我想通了,滚动事件不会被触发,这lazyload是听。 所以,你必须做的唯一的事情,是手动触发滚动事件为您的滚动容器。 我用onScrollEnd从iScroll回调,做了

onScrollEnd: function () {
    $('div.scroll').trigger('scroll');
}

$('div.scroll')为i与iScroll使用的容器

var scroll, container;

container = $('div.scroll');
scroll    = new iScroll(container.get(0), {
    bounce: false,
    onScrollEnd: function () {
        container.trigger('scroll');
    }
});

这是什么lazyload方法看起来像

$('img.lazyload').lazyload({
    effect: 'fadeIn',
    container: $('div.scroll')
});

干杯!



Answer 2:

这可能不是最好的解决办法,但因为没有其他人回答说:

尝试忆及iscroll的onScrollEnd事件lazyload方法。 事情是这样的:

 new iScroll('wrapper', onScrollEnd: function() {$("img.lazy").lazyload()});


文章来源: How to make Iscroll and Lazy Load jQuery plugins work together?