【发布时间】:2012-11-21 16:41:05
【问题描述】:
我在一个页面上有一堆图像,出于本网站的目的,客户希望图像不要以正常方式加载,它们会慢慢出现,逐行渲染。
相反,我们要做的是等到图像加载完毕,然后在加载图像时,在其位置显示一点加载 gif。随着每张图片的加载,它会淡入。
到目前为止,我为此所做的是:
$('img').each(function(){
$(this).load(function(){
$(this).fadeIn();
});
});
按预期工作。但我想把它提升到一个新的水平。
假设此页面上有 20 张图片,但一次只能在页面上看到 1 或 2 张。然后,我希望其他 18 个不会被加载,除非浏览器向下滚动以使它们变得明显。
我知道有一些插件可以做到这一点——比如lazyload——但我没有用这些插件获得好的结果。
如何使用 jquery 或 javascript 检查图像是否在当前视口中?
- 我的 each() 函数最初只会遍历可见图像
- 当图像进入视野时,它们会加载,然后淡入。
感谢您的宝贵时间。
【问题讨论】:
标签: jquery lazy-loading