您的位置:首页 > Web前端 > JQuery

jquery的lazyload.js实现图片的懒加载

2016-07-27 10:19 666 查看
国内关于这个话题的文章不少,但是看了也试了就是没达到效果,搞得我很蛋疼。后面还是直接到官网去看,写的简单明了(http://www.appelsiini.net/projects/lazyload),另外官网还提供了一个例子:http://www.appelsiini.net/projects/lazyload/enabled.html。使用的是jquery1.7,lazyload 3。

网上有人反映说lazyload只是效果好看并没有实现真正的懒加载,在后台仍然是把页面上的所有图片下了一遍,只不过是先把图片隐藏并在窗口向下滚动时再逐一显示出来罢了。lazyloag3经测试这个问题已经解决了。

还有一点必须注意的是,如果想达到在窗口向下滚动时图片一张张下载的效果,最好给图片设置足够的高度。如下面的代码

<img data-original="images/bg00001.jpg" src="/js/grey.gif" border="0" /> 

<img data-original="images/bg00002.jpg" src="/js/grey.gif" border="0" /> 

<img data-original="images/bg00003.jpg" src="/js/grey.gif" border="0" /> 

<img data-original="images/bg00004.jpg" src="/js/grey.gif" border="0" /> 

默认显示grey.gif,grey.gif高度只有1px,当页面打开时bg00001.jpg,bg00002.jpg,bg00003.jpg,bg00004.jpg这四张图片会被全部下载下来。如果我们设置了高度,代码如下

<img data-original="images/bg00001.jpg" height="600" src="/js/grey.gif" border="0" /> 

<img data-original="images/bg00002.jpg" height="600"  src="/js/grey.gif" border="0" /> 

<img data-original="images/bg00003.jpg" height="600"  src="/js/grey.gif" border="0" /> 

<img data-original="images/bg00004.jpg" height="600"  src="/js/grey.gif" border="0" /> 

那么一次只会下载一张或者两张(多少张依据窗口高度,图片高度而定)

src="js/grey.gif"是占位图片,data-original="img/example.jpg"才是真正要加载的图片.


 lazyload的目的是延迟加载,但是就算用js去掉src属性也会马上加载图片,所以lazyload就让src加载一个很小很小的图片(1px*1px,几乎看不到),也就是所谓的占位图,然后添加了个data-original属性延迟加载真正要显示的图片。

这里就不贴代码代码,提供包下载,有兴趣的童鞋可以下。用Chrome的开发人工具->NetWork可以查看效果。

下载地址:http://download.csdn.net/detail/goleftgoright/4028546

下面是lazyload插件的使用及参数的介绍

Jquery.LazyLoad.js使用方法: 

1、将以下文件存放在同一目录下面: 

jquery.js 

jquery.layzload.js 

grey.gif 

2、在需要使用特效的地方加上如下的代码: 

<script type="text/javascript" src="http://demo.jb51.net/js/2011/lazyload/Js/lazyload/jquery.js"></script> 

<script type="text/javascript" src="http://demo.jb51.net/js/2011/lazyload/Js/lazyload/jquery.lazyload.js"></script> 

Jquery.LazyLoad.js插件修正版下载: 

lazyload.rar 

Jquery.LazyLoad.js插件参数详解: 

下面对LazyLoad插件的一些参数进行说明,供使用者做出更贴切的效果。 

1,用图片提前占位 

placeholder : "img/grey.gif", 

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

2,载入使用何种效果 

effect : "fadeIn", 

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

3,提前开始加载 

threshold : 200, 

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

4,事件触发时才加载 

event : "click", 

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

5,对某容器中的图片实现效果 

container: $("#container"), 

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

6,图片排序混乱时 

failurelimit : 10, 

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

详细出处参考:http://www.jb51.net/article/26528.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: