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 相关文章推荐
jQuery的学习步骤
Feb 23 Javascript
解决Extjs上传图片无法预览的解决方法
Mar 22 Javascript
jquery插件珍藏(图片局部放大/信息提示框)
Jan 08 Javascript
Javascript实现网络监测的方法
Jul 31 Javascript
JavaScript编程中布尔对象的基本使用
Oct 25 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
Jul 07 Javascript
JavaScript基于activexobject连接远程数据库SQL Server 2014的方法
Jul 12 Javascript
详解Node.js利用node-git-server快速搭建git服务器
Sep 27 Javascript
Angular刷新当前页面的实现方法
Nov 21 Javascript
如何使用puppet替换文件中的string
Dec 06 Javascript
vue-cli2.0转3.0之项目搭建的详细步骤
Dec 11 Javascript
关于Javascript闭包与应用的详解
Apr 22 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
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
2013/08/31 PHP
php中静态类与静态变量用法的区别分析
2015/01/15 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
2017/02/15 PHP
JavaScript 学习笔记(九)call和apply方法
2010/01/11 Javascript
基于jquery的一个简单的脚本验证插件
2010/04/05 Javascript
javascript-简单的日历实现及Date对象语法介绍(附图)
2013/05/30 Javascript
判断是否安装flash player及当前版本的JS代码
2013/08/08 Javascript
js实现图片旋转的三种方法
2014/04/10 Javascript
jQuery 重复加载错误以及修复方法
2014/12/16 Javascript
js计算任意值之间随机数的方法
2015/01/16 Javascript
js+css实现tab菜单切换效果的方法
2015/01/20 Javascript
js判断一个字符串是否包含一个子串的方法
2015/01/26 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
jQuery实现级联下拉框实战(5)
2017/02/08 Javascript
简单实现js菜单栏切换效果
2017/03/04 Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
2017/04/16 Javascript
Node.js 使用命令行工具检查更新
2017/06/08 Javascript
js 事件的传播机制(实例讲解)
2017/07/20 Javascript
JavaScript实现异步图像上传功能
2018/07/12 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
2019/06/04 Javascript
Node.js实现简单管理系统
2019/09/23 Javascript
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
Python实现App自动签到领取积分功能
2018/09/29 Python
如何用Python破解wifi密码过程详解
2019/07/12 Python
python 图片二值化处理(处理后为纯黑白的图片)
2019/11/01 Python
python matplotlib如何给图中的点加标签
2019/11/14 Python
基于zepto的插件之移动端无缝向上滚动并上下触摸滑动实例代码
2016/12/20 HTML / CSS
贝嫂喜欢的婴儿品牌,个性化的婴儿礼物:My 1st Years
2017/11/19 全球购物
美津浓美国官网:Mizuno美国
2018/08/07 全球购物
shell的种类有哪些
2015/04/15 面试题
行政办公室岗位职责
2014/03/18 职场文书
关于环保的活动方案
2014/08/25 职场文书
2014年煤矿工作总结
2014/11/24 职场文书
个人欠条范本
2015/07/03 职场文书
文明医院的标语集锦!
2019/07/24 职场文书