使用jquery插件实现图片延迟加载技术

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

有时我们看到一些大型网站,页面如果有很多图片的时候,当你滚动到相应的行时,当前行的图片才即时加载的,这样子的话页面在打开只加可视区域的图片,而其它隐藏的图片则不加载,一定程序上加快了页面加载的速度,对于比较长的页面来说,这个方案是比较好的。

这里推荐使用 jquery图片延迟 加载插件jquery.lazyload实现图片延迟 加载提高网站打开速度

下载地址:http://www.appelsiini.net/download/jquery.lazyload.js

修正版:jquery.lazyload修正版.rar  

一、快速使用篇
1. 导入JS插件

<script src= "js/jquery.js" type= "text/javascript" ></script>
<script src= "js/jquery.lazyload.js" type= "text/javascript" ></script>

2. 在你的页面中加入如下的javascript:

<script type= "text/javascript" >
     $( "img" ).lazyload(); 
</script>

这将会使所有的图片都延迟加载;

 

二、高级篇详细介绍 (不想了解那么多的可以直接绕过)

Lazy Load 是一个用 JavaScript 编写的 jQuery 插件. 它可以延迟加载长页面中的图片. 在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预加载的处理方式正好是相反的.

在包含很多大图片长页面中延迟加载图片可以加快页面加载速度. 浏览器将会在加载可见图片之后即进入就绪状态. 在某些情况下还可以帮助降低服务器负担.

Lazy Load 灵感来自 Matt Mlinac 制作的 YUI ImageLoader 工具箱.

怎样使用?

Lazy Load 依赖于 jQuery. 请将下列代码加入页面 head 区域:

<script src= "jquery.js" type= "text/javascript" ></script>
<script src= "jquery.lazyload.js" type= "text/javascript" ></script>

并且在你的执行代码中加入下面语句:

$( "#xd" ).lazyload();<BR>

这将使id=”xd” 区域下的图片将被延迟加载.

设置敏感度

插件提供了 threshold 选项, 可以通过设置临界值 (触发加载处到图片的距离) 来控制图片的加载. 默认值为 0 (到达图片边界的时候加载).

$( "#xd" ).lazyload({ threshold : 200 });<BR>

将临界值定为 200, 当可视区域离图片还有 200 个象素的时候开始加载图片. (这一句原文的字面意思和本人理解不一致, 原文: Setting threshold to 200 causes image to load 200 pixels before it is visible.)

参数:threshold,值为数字,代表页面高度.如设置为200,表示滚动条在离目标位置还有200的高度时就开始加载图片,可以做到不让用户察觉.

占位图片

你还可以设定一个占位图片并定义事件来触发加载动作. 这时需要为占位图片设定一个 URL 地址. 透明, 灰色和白色的 1×1 象素的图片已经包含在插件里面.

$( "img" ).lazyload({ placeholder : "img/grey.gif" });<BR>

参数:placeholder,值为某一图片路径.此图片用来占据将要加载的图片的位置,待图片加载时,占位图则会隐藏。

事件触发加载

事件可以是任何 jQuery 时间, 如: click 和 mouseover. 你还可以使用自定义的事件, 如: sporty 和 foobar. 默认情况下处于等待状态, 直到用户滚动到窗口上图片所在位置. 在灰色占位图片被点击之前阻止加载图片, 你可以这样做:

$( "img" ).lazyload({
     placeholder: "img/grey.gif" ,
     event: "click"
});

 

参数:event,值有click(点击),mouseover(鼠标划过),sporty(运动的),foobar(…).可以实现鼠标莫过或点击图片才开始加载,后两个值未测试…

使用特效

当图片完全加载的时候, 插件默认地使用 show() 方法来将图显示出来. 其实你可以使用任何你想用的特效来处理. 下面的代码使用 FadeIn 效果. 这是演示页面.

$( "img" ).lazyload({
     placeholder: "img/grey.gif" ,
     effect : "fadeIn"  
});

 

参数:effect(特效),值有show(直接显示),fadeIn(淡入),slideDown(下拉)等,常用fadeIn。

图片在容器里面

你可以将插件用在可滚动容器的图片上, 例如带滚动条的 DIV 元素. 你要做的只是将容器定义为 jQuery 对象并作为参数传到初始化方法里面. 这是水平滚动演示页面和垂直滚动的演示页面.

CSS 代码:

#container { height: 600px;overflow: scroll; }< BR >

JavaScript 代码:

$( "img" ).lazyload({
     placeholder: "img/grey.gif" ,
     container: $( "#container" )
});

 

参数:container,值为某容器.lazyload默认在拉动浏览器滚动条时生效,这个参数可以让你在拉动某DIV的滚动条时依次加载其中的图片

当图片不顺序排列

滚动页面的时候, Lazy Load 会循环为加载的图片. 在循环中检测图片是否在可视区域内. 默认情况下在找到第一张不在可见区域的图片时停止循环. 图片被认为是流式分布的, 图片在页面中的次序和 HTML 代码中次序相同. 但是在一些布局中, 这样的假设是不成立的. 不过你可以通过 failurelimit 选项来控制加载行为.

$( "img" ).lazyload({
     failurelimit: 10
});

 

将 failurelimit 设为 10 令插件找到 10 个不在可见区域的图片是才停止搜索. 如果你有一个猥琐的布局, 请把这个参数设高一点.

参数:failurelimit,值为数字.lazyload默认在找到第一张不在可见区域里的图片时则不再继续加载,但当HTML容器混乱的时候可能出现可见区域内图片并没加载出来的情况,failurelimit意在加载N张可见区域外的图片,以避免出现这个问题.

多参数同时设置方法

<script type= "text/javascript" >
         $( "img" ).lazyload({ placeholder: "images/white.gif" , threshold: 200, effect: "fadeIn" });
</script>


 

延迟加载图片

Lazy Load 插件的一个不完整的功能, 但是这也能用来实现图片的延迟加载. 下面的代码实现了页面加载完成后再加载. 页面加载完成 5 秒后, 指定区域内的图片会自动进行加载. 这是延迟加载演示页面.

$( function () {
     $( "img:below-the-fold" ).lazyload({
         placeholder: "img/grey.gif" ,
         event: "sporty"
     });
});
$(window).bind( "load" , function () {
     var timeout = setTimeout( function () { $( "img" ).trigger( "sporty" ) }, 5000);
简单jQuery加载等待转圈页面插件 简单的jQuery加载等待转圈页面小插件 立即下载

相关推荐

Applied Energy期刊小白论文投稿模板-流程经验分享

Applied Energy期刊小白论文投稿模板-流程经验分享,Elsevier期刊(爱思唯尔)投稿流程

zzu_Flyer的博客 4万+

jQuery图片延迟加载插件jQuery.lazyload

jQuery图片延迟加载插件jQuery.lazyload

weixin_43860634的博客 510

ubuntu下编译qtwebengine

ubuntu qtwebengine

tianyu的专栏 - Linux site:blog.csdn.net/wishfly 1445

Jquery的loading插件

经过几周的时间的开发。我的loading插件终于上线了。这个插件功能为客户提供正在等待的信息,提供优良用户体验效果。 先看效果。 原理我内部实现我不讲,特别简单。 我说调用方式和api。 首先引用jquery-1.10.2.js,建议高版本的。 script src="jquery-1.10.2.js">script> 然后引入样式和js文件,Loading.css和Lo

b1b3d1dl的专栏 1096

lazyload异步加载图片

如果一个网页很长并且有很多图片的话,下载图片就需要很多时间,那么就会影响整个网页的加载速度,而这款延迟加载插件,会通过你的滚动情况来加载你需要看的图片,然后它才会从后台请求下载图片,最后显示出来。通过这个插件,可以在需要显示图片的时候,才下载图片,从而可以减少服务器的压力,提高页面加载速度。 Lazy Load 插件原理 修改目标img元素的src属性为orginal属性,从而中断图片的加...

水滴石穿!学习小积累! 376

jquery实现页面等待加载“转圈”效果

jquery点击提交的 预转圈

weixin_40362806的博客 2339

使用jquery插件实现图片延迟加载技术(懒加载

有时我们看到一些大型网站,页面如果有很多图片的时候,当你滚动到相应的行时,当前行的图片才即时加载的,这样子的话页面在打开只加可视区域的图片,而其它隐藏的图片则不加载,一定程序上加快了页面加载的速度,对于比较长的页面来说,这个方案是比较好的。 这里推荐使用jquery图片延迟加载插件jquery.lazyload实现图片延迟加载提高网站打开速度 下载地址:http://www.appelsiin...

weixin_30518397的博客 82

分享前端数据延迟加载jQuery插件设计教程

http://www.xueit.com/js/show-6728-1.aspx 背景 最近看到很多网站都运用到了一种前端数据延迟加载技术,包括淘宝,新浪网等等,这样做的目的可以使得一些未显示的图片随 着滚动条的滚动进行延迟显示。 好处显而易见,可以减少前端对于图片的Http请求,减轻对于服务器的压力,对于长篇并且大批量的图片的网页很有帮助。 详细分析 1. 今天就来介绍如何设...

iteye_2323的博客 129

lazyload插件实现图片加载

效果图如下: 图片来源:重庆猪八戒网 为什么要使用图片加载??? 当我们进入到某个页面的时候,会有很多的图片,有些图片可能在很下面,当我们加载页面但没有滚动的时候,图片就已经全部加载完成了,其实下面的图片不滚动是看不到的,等于说最开始加载了等于白加载,反而降低了网页的加载速度;懒加载还有滚动到可视区域时才加载当前图片,也就是说图片不是一次性加载完成的,因此这样从一定程度减少服务端的请求及带宽。 懒加载的有点?? 提高前端性能,给用户更好的体验,图片在需要时才加载,减轻服务的负担,提高页面的加载速度,能顾

想好了再写! 562

使用jquery的lazy loader插件实现图片延迟加载

原文链接:http://www.cnblogs.com/hnsdwhl/archive/2011/05/06/2039179.html 相关文章:http://www.neoease.com/lazy-load-jquery-plugin-delay-load-image/ 当网站上有大量图片要展示的话,如果一次把所有的图片加载出来的话,这势必会影响网站的加载速度,给用户带来比较

叮咚侠的博客 814

jquery插件scroll-loading实现图片延迟加载

jquery插件scroll-loading实现图片延迟加载,代码下载地址:http://www.zuidaima.com/share/1665204441058304.htm

云淡风轻、仅此一抹 2065

jquery.lazyload 插件实现图片延迟加载

jquery.lazyload 插件实现图片延迟加载 看到了淘宝产品介绍中,图片是在下拉滚动条时加载,这是一个很不错的用户体验。减少了页面加载的时间了,也减轻了服务器的压力,就查了下用 JQuery.. 什么是ImageLazyLoad技术 在页面上图片比较多的时候,打开一张页面必然引起与服务器大数据量的交互。尤其是对于高清晰的图片,占的几M的空间。ImageLazyLoad...

omygege 96

jquery插件实现图片延迟加载

jquery插件实现图片延迟加载 在页面中图片较多时,一次性加载所有图片会耗去很多时间。  我们可以选择“延迟加载”的方式来加载图片,相对这种页面的加载速度将会有个很大的提升。 图片延迟加载的原理很简单,依据用户正浏览的位置,当用户决定继续浏览文章中的其它内容时,用户会轻轻滑动滚动条,  到一个新的内容区域,图片延迟加载程序会选择在这个时候向用户展示图片。 说明:1) 引用jquery.js ...

专注IT领域开发 231

早上写了个图片延迟加载Jquery插件

前不久读到了一篇文章,说到土豆网下半片图片是在滚动条向下滚动一定的距离后才开始加载。 这样做有效的减轻了图片服务器的压力。 我就花了半天写了个图片延迟加载Jquery插件,方便我以后的使用。 演示地址和源码我传到了我的空间上: http://www.91feihua.com/lazy.html 转载于:https://www.cnblogs.com/Hanner/arc...

138
上一篇: 一句话 搞定 css 绝对定位已经透明度兼容IE FX
下一篇: 解决ajax 缓存问题。
saonek
博客等级 码龄17年 7粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值