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图片平滑连续滚动插件
Apr 27 Javascript
基于MooTools的很有创意的滚动条时钟动画
Nov 14 Javascript
JavaScript中的单引号和双引号报错的解决方法
Sep 01 Javascript
javaScript实现滚动新闻的方法
Jul 30 Javascript
理解Javascript的call、apply
Dec 16 Javascript
利用jQuery设计一个简单的web音乐播放器的实例分享
Mar 08 Javascript
AngularJS入门教程之Cookies读写操作示例
Nov 02 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
Jun 19 Javascript
Angular客户端请求Rest服务跨域问题的解决方法
Sep 19 Javascript
原生js实现移动端Touch轮播图的方法步骤
Jan 03 Javascript
React实现评论的添加和删除
Oct 20 Javascript
Ajax是什么?Ajax高级用法之Axios技术
Apr 21 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
php横向重复区域显示二法
2008/09/25 PHP
Mac系统下安装PHP Xdebug
2018/03/30 PHP
laravel中短信发送验证码的实现方法
2018/04/25 PHP
使弱类型的语言JavaScript变强势
2009/06/22 Javascript
基于JQuery的简单实现折叠菜单代码
2010/09/15 Javascript
Javascript实现的类似Google的Div拖动效果代码
2011/08/09 Javascript
jquery与prototype框架的详细对比
2013/11/21 Javascript
对于jQuery性能的一些优化建议
2015/08/13 Javascript
JS组件Bootstrap Table使用方法详解
2016/02/02 Javascript
基于AngularJS实现的工资计算器实例
2017/06/16 Javascript
深入理解基于vue-cli的vuex配置
2017/07/24 Javascript
vue2里面ref的具体使用方法
2017/10/27 Javascript
详解React项目的服务端渲染改造(koa2+webpack3.11)
2018/03/19 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
2019/07/12 jQuery
微信小程序基于Taro的分享图片功能实践详解
2019/07/12 Javascript
在Vue环境下利用worker运行interval计时器的步骤
2019/08/01 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
js通过循环多张图片实现动画效果
2019/12/19 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
2020/11/07 Javascript
[01:28:31]《加油DOTA》真人秀 第五期
2014/09/01 DOTA
[07:06]2018DOTA2国际邀请赛寻真——卫冕冠军Team Liquid
2018/08/10 DOTA
[30:37]【全国守擂赛】第三周擂主赛 Dark Knight vs. Leopard Gaming
2020/05/04 DOTA
在Django中管理Users和Permissions以及Groups的方法
2015/07/23 Python
python基础教程之五种数据类型详解
2017/01/12 Python
pandas series序列转化为星期几的实例
2018/04/11 Python
Python selenium抓取微博内容的示例代码
2018/05/17 Python
PyQt5重写QComboBox的鼠标点击事件方法
2019/06/25 Python
Python系统公网私网流量监控实现流程
2020/11/23 Python
Html5新增标签与样式及让元素水平垂直居中
2019/07/11 HTML / CSS
法国包包和行李箱销售网站:Bagage24.fr
2020/03/24 全球购物
出纳岗位职责模板
2013/11/27 职场文书
小学清明节活动方案
2014/03/08 职场文书
2015年财务工作总结范文
2015/03/31 职场文书
网络研修随笔感言
2015/11/18 职场文书
五年级数学教学反思
2016/02/16 职场文书
如何在python中实现ECDSA你知道吗
2021/11/23 Python