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


Posted in Javascript onFebruary 06, 2010

什么是ImageLazyLoad技术
在页面上图片比较多的时候,打开一张页面必然引起与服务器大数据量的交互。尤其是对于高清晰的图片,占的几M的空间。ImageLazyLoad技术就是,当前可见界面的图片是加载进来的,而不可见页面(通过滚动条下拉可见)中的图片是不加载的,这样势必会引起速度上质的提升。

怎么实现ImageLazyLoad

一、使用JQuery插件 ,插件名: jquery.lazyload(7kb大小),压缩后(3kb大小)

在线压缩js http://closure-compiler.appspot.com/home
虽然是很牛X的特效,不过用JQuery插件只需要短短几句代码,使用过程如下:

1.导入JS插件
<script src="jquery.js" type="text/javascript"></script>
<script src="jquery.lazyload.js" type="text/javascript"></script>
2.在你的页面中加入如下的javascript:

$("img").lazyload();

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

当然插件还有几个配置项可供设置。

1.改变threshold

$(“img”).lazyload({ threshold : 200 });

把阀值设置成200 意思就是当图片没有看到之前先load 200像素。

2.当然了你也可以通过设置占位符图片和自定事件来触发加载图片事件

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

3.可以通过定义effect 参数来定义一些图片显示效果

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

LazyLoad(延迟加载)技术不仅仅用在对网页中图片的延迟加载,对数据同样可以,Google Reader和Bing图片搜索就把
LazyLoad技术运用的淋漓尽致;
缺陷:
1.与Ajax技术的冲突;
2.图片的延迟加载,遇到高度特别高的图片,会出现停止加载的问题;
3.写代码不规范的同学要注意了,不管由于什么原因,如果您的页面中,img标签的height属性未定义,那么我建议您最好不要使用ImageLazyLoad

大家可以直接采用淘宝的延迟加载技术:(2kb大小)
http://a.tbcdn.cn/kissy/1.0.0/build/imglazyload/imglazyload-min.js
调用方法也是很简单的:
<script src="http://a.tbcdn.cn/kissy/1.0.0/build/imglazyload/imglazyload-min.js"
type="text/javascript"></script> <script type="text/javascript">// <![CDATA[KISSY.ImageLazyload();// ]]></script>
注:该脚本依赖 yahoo-dom-event, 页面中需要加载 yui 2.x,你也可以直接引用下面的地址:
<script src="http://kissy.googlecode.com/svn/trunk/third-party/yui2/yahoo-dom-event/yahoo-dom-event.js" type="text/javascript"></script>

配置参数如下:

<script type="text/javascript"> 
KISSY.ImageLazyload({ 
mod: "manual", // 延迟模式。默认为 auto 
diff: 200 // 当前屏幕下多远处的图片开始延迟加载。默认两屏外的图片才延迟加载 
}); 
</script>

manual 模式时,需要手动将页面中需要延迟加载的图片的 src 属性名更改为 data-lazyload-src. 比如 SRP 页面,宝贝列表的后20个图片延迟加载。 输出时,html 代码为:

<img data-lazy-src="path/to/img" alt="something" />

如果您是Jquery,Prototype等这些JS框架的粉丝,他们都有定制的LazyLoad Plugin提供;

可查看http://www.appelsiini.net/projects/lazyload

LazyLoad(延迟加载)技术不仅仅用在对网页中图片的延迟加载,对数据同样可以,Google Reader和Bing图片搜索就把
LazyLoad技术运用的淋漓尽致;

Javascript 相关文章推荐
用js实现手把手教你月入万刀(转贴)
Nov 07 Javascript
javascript json 新手入门文档
Dec 03 Javascript
window.open 以post方式传递参数示例代码
Feb 27 Javascript
JavaScript中的Primitive对象封装介绍
Dec 31 Javascript
js去除浏览器默认底图的方法
Jun 08 Javascript
详解jQuery移动页面开发中的ui-grid网格布局使用
Dec 03 Javascript
JavaScript必知必会(五) eval 的使用
Jun 08 Javascript
ExtJS 4.2 Grid组件单元格合并的方法
Oct 12 Javascript
Javascript 两种刷新方法以及区别和适用范围
Jan 17 Javascript
JavaScript遍历数组的三种方法map、forEach与filter实例详解
Feb 27 Javascript
学习LayUI时自研的表单参数校验框架案例分析
Jul 29 Javascript
浅谈JS的二进制家族
May 09 Javascript
利用jQuery 实现GridView异步排序、分页的代码
Feb 06 #Javascript
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
Feb 04 #Javascript
使用SyntaxHighlighter实现HTML高亮显示代码的方法
Feb 04 #Javascript
JavaScript学习笔记(十七)js 优化
Feb 04 #Javascript
jQuery生成asp.net服务器控件的代码
Feb 04 #Javascript
javascript两段代码,两个小技巧
Feb 04 #Javascript
JavaScript面向对象之静态与非静态类
Feb 03 #Javascript
You might like
动态生成gif格式的图像要注意?
2006/10/09 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
2014/01/26 PHP
php+ajax实现的点击浏览量加1
2015/04/16 PHP
php通过baihui网API实现读取word文档并展示
2015/06/22 PHP
PHP实现全角字符转为半角方法汇总
2015/07/09 PHP
PHP扩展mcrypt实现的AES加密功能示例
2019/01/29 PHP
BOOM vs RR BO3 第一场2.13
2021/03/10 DOTA
基于jQuery的Spin Button自定义文本框数值自增或自减
2010/07/17 Javascript
Js放到HTML文件中的哪个位置有什么区别
2013/08/21 Javascript
JavaScript程序员应该知道的45个实用技巧
2014/03/04 Javascript
javascript数字时钟示例分享
2014/04/23 Javascript
jQuery左右滚动支持图片放大缩略图图片轮播代码分享
2015/08/26 Javascript
简介EasyUI datagrid editor combogrid搜索框的实现
2016/04/01 Javascript
基于JavaScript实现本地图片预览
2017/02/08 Javascript
原生JS实现圣旨卷轴展开效果
2017/03/06 Javascript
vue watch深度监听对象实现数据联动效果
2018/08/16 Javascript
小程序实现多列选择器
2019/02/15 Javascript
微信小程序登录态和检验注册过没的app.js写法
2019/05/22 Javascript
python实现迭代法求方程组的根过程解析
2019/11/25 Javascript
Pycharm设置utf-8自动显示方法
2019/01/17 Python
Python实现的IP端口扫描工具类示例
2019/02/15 Python
Python手绘可视化工具cutecharts使用实例
2019/12/05 Python
Python中Subprocess的不同函数解析
2019/12/10 Python
Python图像处理库PIL的ImageGrab模块介绍详解
2020/02/26 Python
Python的历史与优缺点整理
2020/05/26 Python
keras model.fit 解决validation_spilt=num 的问题
2020/06/19 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
Book Depository亚太地区:一家领先的国际图书零售商
2019/05/05 全球购物
学生会干部自荐信
2014/02/04 职场文书
公司合作意向书
2014/04/01 职场文书
培训协议书范本
2014/04/22 职场文书
优秀教师先进材料
2014/12/16 职场文书
贫民窟的百万富翁观后感
2015/06/09 职场文书
七年级作文之《我和我的祖国》观后感作文
2019/10/18 职场文书
六年级作文之家庭作文
2019/12/12 职场文书
MySQL分区表管理命令汇总
2022/03/21 MySQL