如何让 Iscroll 和 Lazy Load jQuery 插件一起工作?

2024-04-17

有没有机会让这两个插件一起工作? 现在,如果我在带有图像的 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/我已经差不多了,请大家帮忙。 在新的小提琴中,问题是:

  1. onBeforeScrollEnd 似乎不起作用。如果我在其中包含 console.log('something'),在我看来,它会在滚动开始时触发。

  2. 初始#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/它可以工作,但如果你快速“滚动”,就会卡在底部。


今天我遇到了同样的问题,我发现延迟加载正在监听的滚动事件没有被触发。因此,您唯一要做的就是手动触发滚动容器的滚动事件。我用的是onScrollEnd从 iScroll 回调并执行了

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

while $('div.scroll')是我与 iScroll 一起使用的容器

var scroll, container;

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

这就是延迟加载方法的样子

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

Cheers!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让 Iscroll 和 Lazy Load jQuery 插件一起工作? 的相关文章

  • $.each([集合]) 与 $([集合]).each()

    两种方法似乎产生相同的结果 http jsbin com owedo 但我一直很难真正说服人们第二种方法有效 因为它显然并不为人所知 Create some data var foo vals id foo id bar Common Me
  • Jquery获取javascript文件而不运行

    我想使用 jquery 获取文件的内容 通常我可以使用 get file function data alert data 当我尝试获取 javascript 文件时 jquery 在返回回调之前运行 javascript 代码 如何在不运
  • CKEditor - 内联:以禁用模式显示

    我正在尝试在内联模式下使用 CKEditor 如下所示 var div div content CKEDITOR disableAutoInline true CKEDITOR inline div 0 单击 div 时 将显示 CKEdi
  • jQuery ajax 调用在 Mac Safari 和 Chrome 浏览器上返回空错误

    我几天来一直在寻找解决方案并尝试修复 但没有任何改变 老板使用的是 Mac 而我没有 所以我让他尝试重复修复并将输出转发给我 到目前为止还没有运气 因此 当前的设置是 我有一个包含用户名和密码输入的表单 该表单在经过验证后提交 验证是一个
  • 使用 RequireJS 的条件注释仅加载 IE7/8 jQuery

    我在我的项目中使用 Require JS 它加载 jQuery 和其他一些与整个网站和所有浏览器相关的 JavaScript 文件 但是 我需要在 Internet Explorer 7 和 8 上使用一些条件 jQuery 我尝试将其放在
  • 从 url 加载图像并绘制到 HTML5 Canvas

    我在从 javascript 中的 url 加载图像时遇到问题 下面的代码可以工作 但我不想从 html 加载图像 我想使用纯 JavaScript 从 url 加载图像 var c document getElementById myCa
  • 获取无法使用引导轮播脚本读取未定义的属性“offsetWidth”

    我创建了一个carousel with Bootstrap 3 3它可以在我的本地计算机上运行 但是当我将整个内容上传到服务器上时 其中引导程序js文件与单个文件中的其他文件一起编译 我收到此错误 Cannot read property
  • 就性能而言,在页面上显示 1000 张图像的最佳方法是什么?

    我试图在一个页面上显示 1000 个相当小的图像 确实很多 但超出了我的控制范围 当一次性加载所有图像时 一次渲染 1000 张图像 性能显然会受到严重影响 我尝试在滚动时应用图像 src 大量 250px 滚动 25 个图像加载等 然后尝
  • 全日历和时区。求助,我做错了

    我不知何故做错了 我被时区绊倒了Fullcalendar 我尝试过设置ignoreTimezone真与假 不过似乎并不重要 它在下面的代码中的两个地方 因为我不确定它在哪里 我的数据源是隐藏的表单字段 数据流转out of FullCale
  • 当子列表视图在颤动中到达末尾时,有什么方法可以滚动父列表视图吗?

    假设我有一个可滚动页面 在该页面内我有另一个可滚动列表视图 垂直 所以我希望当子列表视图到达末尾时 可滚动页面开始移动到其末尾 此外 当子列表视图到达顶部时 可滚动页面开始移动到顶部 怎样才能做到这一点 这是我的代码 Widget Fres
  • 如何在 Angular JS 中显示以字节数组形式接收的图像

    我有一个将返回图像的服务器端应用程序 这些是响应标头 Content Disposition attachment filename 8822a009 944e 43f4 999b d297198d302a 1 0 low res Cont
  • 元素特定区域的背景颜色

    我想要实现的是将悬停效果放在光标的位置上 像这样的东西 https drmportal com https drmportal com 这是一个小提琴 https jsfiddle net onnmwyhd https jsfiddle n
  • 傅里叶变换定理 matlab

    我目前正在尝试理解二维傅里叶位移定理 根据我到目前为止所了解到的情况 图像空间中的平移会导致相位差异 但不会导致频率空间中的幅度差异 我试图用一个小例子来演示这一点 但它只适用于行的移位 而不适用于列的移位 这是一个小演示 我只在这里显示幅
  • 在选择选项标签中循环 Ajax 响应

    我必须选择多个测试和日期 当根据测试单击提交时 实验室名称将加载到选择选项中 阿贾克斯脚本 name submits click function e e preventDefault var array select selected e
  • 如何使用 jQuery 将 html5 视频播放器静音

    我找到了如何使用 jquery 暂停和播放视频 video get 0 play video get 0 pause 但我找不到静音按钮 如果没有 jquery 解决方案 我只需一个 onclick js 解决方案即可 我需要尽快 还有有办
  • 图像上的 JQuery 加载事件

    我想在加载图像时将图像父级的大小调整为与图像相同的大小 此时我正在使用这段代码 window load function image principale each function this parent css height this
  • 如何在 Node.js 中将 HTML 转换为图像

    我需要在 Node 服务器上将 HTML 模板转换为图像 服务器将以字符串形式接收 HTML 我尝试过 PhantomJS 使用一个名为 Webshot 的库 但它不能很好地与 Flex 框和现代 CSS 配合使用 我尝试使用 Chrome
  • CSS - 将文本保留在图像下方

    我正在尝试创建一个简单的图片库 有人告诉我使用 float left 但是当我这样做时 页脚中的所有文本都会射到第一张图像 我已经搜索了大约一个小时试图找到解决方案 但我找不到任何东西 我尝试过使用边距 边框 不同的对齐方式和各种不同的小东
  • 解决多个 jQuery 文件之间的冲突

    我的项目中有多个 jquery 文件 我正在使用jquery1 4 2使用facebox 但我也需要原型和scriptacolous脚本 我用过 jQuery noconflict 在我的代码中 但它不起作用 这是网址http mlep c
  • 如何使用 Misc.imread 将图像分割为红色、绿色和蓝色通道

    我正在尝试将图像切片为 RGB 但在绘制这些图像时遇到问题 我使用此函数从某个文件夹获取所有图像 def get images path image type image list for filename in glob glob pat

随机推荐