zl程序教程

您现在的位置是:首页 >  前端

当前栏目

使用jquery插件实现图片延迟加载技术详细说明

jQuery技术插件 实现 使用 详细 说明 图片
2023-06-13 09:14:27 时间

这里推荐使用jquery图片延迟加载插件jquery.lazyload实现图片延迟加载提高网站打开速度下载地址:http://www.appelsiini.net/download/jquery.lazyload.js

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

复制代码代码如下:

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

2.在你的页面中加入如下的javascript:
复制代码代码如下:

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

这将会使所有的图片都延迟加载;
二、高级篇详细介绍(不想了解那么多的可以直接绕过)
LazyLoad是一个用JavaScript编写的jQuery插件.它可以延迟加载长页面中的图片.在浏览器可视区域外的图片不会被载入,直到用户将页面滚动到它们所在的位置.这与图片预加载的处理方式正好是相反的.
在包含很多大图片长页面中延迟加载图片可以加快页面加载速度.浏览器将会在加载可见图片之后即进入就绪状态.在某些情况下还可以帮助降低服务器负担.
LazyLoad灵感来自MattMlinac制作的YUIImageLoader工具箱.
怎样使用?
LazyLoad依赖于jQuery.请将下列代码加入页面head区域:
复制代码代码如下:
<scriptsrc="jquery.js"type="text/javascript"></script>
<scriptsrc="jquery.lazyload.js"type="text/javascript"></script>

并且在你的执行代码中加入下面语句:
复制代码代码如下:
$("#xd").lazyload();

这将使id=”xd”区域下的图片将被延迟加载.
设置敏感度
插件提供了threshold选项,可以通过设置临界值(触发加载处到图片的距离)来控制图片的加载.默认值为0(到达图片边界的时候加载).
viewsourceprint?$("#xd").lazyload({threshold:200});
将临界值定为200,当可视区域离图片还有200个象素的时候开始加载图片.(这一句原文的字面意思和本人理解不一致,原文:Settingthresholdto200causesimagetoload200pixelsbeforeitisvisible.)
占位图片
你还可以设定一个占位图片并定义事件来触发加载动作.这时需要为占位图片设定一个URL地址.透明,灰色和白色的1×1象素的图片已经包含在插件里面.
复制代码代码如下:$("img").lazyload({placeholder:"img/grey.gif"});
事件触发加载
事件可以是任何jQuery时间,如:click和mouseover.你还可以使用自定义的事件,如:sporty和foobar.默认情况下处于等待状态,直到用户滚动到窗口上图片所在位置.在灰色占位图片被点击之前阻止加载图片,你可以这样做:
复制代码代码如下:
$("img").lazyload({
placeholder:"img/grey.gif",
event:"click"
});

使用特效
当图片完全加载的时候,插件默认地使用show()方法来将图显示出来.其实你可以使用任何你想用的特效来处理.下面的代码使用FadeIn效果.这是演示页面.
复制代码代码如下:
$("img").lazyload({
placeholder:"img/grey.gif",
effect:"fadeIn"
});

图片在容器里面
你可以将插件用在可滚动容器的图片上,例如带滚动条的DIV元素.你要做的只是将容器定义为jQuery对象并作为参数传到初始化方法里面.这是水平滚动演示页面和垂直滚动的演示页面.
CSS代码:
#container{height:600px;overflow:scroll;}
JavaScript代码:
复制代码代码如下:
$("img").lazyload({
placeholder:"img/grey.gif",
container:$("#container")
});

当图片不顺序排列
滚动页面的时候,LazyLoad会循环为加载的图片.在循环中检测图片是否在可视区域内.默认情况下在找到第一张不在可见区域的图片时停止循环.图片被认为是流式分布的,图片在页面中的次序和HTML代码中次序相同.但是在一些布局中,这样的假设是不成立的.不过你可以通过failurelimit选项来控制加载行为.
复制代码代码如下:
$("img").lazyload({
failurelimit:10
});

将failurelimit设为10令插件找到10个不在可见区域的图片是才停止搜索.如果你有一个猥琐的布局,请把这个参数设高一点.
延迟加载图片
LazyLoad插件的一个不完整的功能,但是这也能用来实现图片的延迟加载.下面的代码实现了页面加载完成后再加载.页面加载完成5秒后,指定区域内的图片会自动进行加载.这是延迟加载演示页面.
复制代码代码如下:
$(function(){
$("img:below-the-fold").lazyload({
placeholder:"img/grey.gif",
event:"sporty"
});
});
$(window).bind("load",function(){
vartimeout=setTimeout(function(){$("img").trigger("sporty")},5000);
});