使jquery延迟加载插件在视口内工作
Make jquery lazyload plugin work inside the viewport
lazyload jquery 插件延迟了长网页中图像的加载。视口(网页的可见部分)之外的图像在用户滚动到它们之前不会加载。
问题是我有一个缩略图库,里面有大约 40 张小图像,每行 10 张。如果我加载网站,我可以看到 3 行图像(总共 30 张图像)。该插件在其他 10 个插件上创造了奇迹,但我仍然一次收到 30 个 HTTP 请求。
可以修改此插件以延迟视口中的图像吗? 也许成群结队?显示前 10 个,等待半秒钟,显示下一个 10 个,再次等待,依此类推。
附言 Lazyload 可以选择延迟加载所有图像,直到 DOM 准备就绪,但如果像 jquery 或其他脚本加载有时有点慢 - 我会看到一个没有图像的站点。
这是插件源代码的链接。
如果手动向 10 行中的每个图像添加一个类,并为后面的行中的图像添加一个单独的类,依此类推,则可以触发每一行的加载,如下所示:
$(function() {
$("img").lazyload({
event : "timedload"
});
});
$(window).bind("load", function() {
setTimeout(function() { $("img.row1").trigger("timedload")}, 1000);
setTimeout(function() { $("img.row2").trigger("timedload")}, 2000);
setTimeout(function() { $("img.row3").trigger("timedload")}, 3000);
setTimeout(function() { $("img.row3").trigger("timedload")}, 4000);
});
如果您只担心请求量,则可以使用图像精灵来捆绑图像。
例如,您可以将第一行捆绑在一个精灵中,将第二行捆绑在另一个精灵中,依此类推。这会将您的 40 个请求减少到 4 个!
当然,这需要
- 图像
- 要么是静态的,因此每个用户都会看到相同的图像,要么
- 某种服务器端的"图像精灵"生成器。然而,两者都不是谷歌和Facebook都在使用服务器端的"图像精灵"生成器捆绑他们的图像
相关文章:
- 将视口底部滚动到元素底部
- 使用JavaScript根据窗口/视口的高度动态调整图像大小
- 使用条件语句,使 jquery fadeIn/fadeOut 仅在视口 >= 480px 时才有效
- 宽度为100%的CSS元素位于视口之外
- CSS3:当页面向下滚动到第一个视口时,是否可以在元素上触发转换
- 如何设置浏览器视口大小
- Javascript em根据窗口/视口尺寸调整大小,不影响文档样式的text/css
- 检测视口并重定向到不同的主页
- 如何在按住鼠标按钮且光标在视口外时检测鼠标离开
- iOS iPad平板电脑渲染视口不正确
- 移动设备上的视口问题
- 视口大小更改时自动刷新页面
- 在移动设备上获取视口大小
- 在 ReactJS 中获取视口/窗口高度
- 使jquery延迟加载插件在视口内工作
- Div 设置为视口高度,即使调整屏幕大小也是如此
- jQuery调整大小和视口检查点
- 将html元素渲染到浏览器视口
- Java脚本在桌面上正常工作(没有水平滚动),但在移动设备上远远超出了视口
- 视口比例;方向改变后不能工作