欢迎您访问橙子博客
推荐

为你的网站部署jQuery.lazyload插件实现图片延迟加载

作者
橙子2024-01-20 20:34 493 浏览
打赏 收藏

  ‌大家在浏览网页的时候有没有发现有的站点页面刷新后,图片处会先显示一张默认图(如logo图等)之后随着页面的滚动,开始一张张加载图片。这其实就是图片延迟加载效果,又称之为“图片懒加载”。

  图片懒加载原理:先将img标签中的src链接设为同一张图片(空白图片),将其真正的图片地址存储再img标签的自定义属性中(比如data-src)。当js监听到该图片元素进入可视窗口时,即将自定义属性中的地址存储到src属性中,达到懒加载的效果。

  这样做的好处就是,能防止页面一次性向服务器响应大量请求导致服务器响应慢,页面卡顿或崩溃等问题。特别适用于图片角度的页面,页面加速效果非常明显。

  这里给大家推荐一款优秀的jQuery插件来实现图片延迟加载效果--jQuery.lazyload.js,只需要进行简单的部署,就可以轻松让站点实现图片延迟加载效果,特别适用于网站首页等有图片列表的页面。

  首先需要将插件引用在页面,如果你的站点已经引用jQuery插件,这只需音入jQuery.lazyload.min.js

<script src="jquery-1.8.3.min.js"></script>
<script src="jquery.lazyload.min.js"></script>

  之后修改你的html结构,给img标签增加“lazy”样式(可自定义),设置src地址为默认图片地址,而真实的图片需采用data-original引用,如下结构‌

<img class="lazy" src="default-img.jpg" data-original="img/true-img.jpg" >

‌  注意,如果你的默认图片与实际图片大小不一,则需要设置该img图片的width和height,以免页面加载变形。

  之后配置jQuery, 如果你给img标签自定义的样式不是lazy,则js中的选择器需要修改(js基础知识,不赘述)。

$(function() {
$("img.lazy").lazyload({
effect: "fadeIn"
});
});

另外还有其他参数可供选择

$("img.lazy").lazyload({
placeholder : "default-img.kpg", //用图片提前占位
// placeholder,值为某一图片路径.此图片用来占据将要加载的图片的位置,待图片加载时,占位图则会隐藏
effect: "fadeIn", // 载入使用何种效果
// effect(特效),值有show(直接显示),fadeIn(淡入),slideDown(下拉)等,常用fadeIn
threshold: 200, // 提前开始加载
// threshold,值为数字,代表页面高度.如设置为200,表示滚动条在离目标位置还有200的高度时就开始加载图片,可以做到不让用户察觉
event: 'click', // 事件触发时才加载
// event,值有click(点击),mouseover(鼠标划过),sporty(运动的),foobar(…).可以实现鼠标莫过或点击图片才开始加载,后两个值未测试…
container: $("#container"), // 对某容器中的图片实现效果
// container,值为某容器.lazyload默认在拉动浏览器滚动条时生效,这个参数可以让你在拉动某DIV的滚动条时依次加载其中的图片
failurelimit : 10 // 图片排序混乱时
// failurelimit,值为数字.lazyload默认在找到第一张不在可见区域里的图片时则不再继续加载,但当HTML容器混乱的时候可能出现可见区域内图片并没加载出来的情况,failurelimit意在加载N张可见区域外的图片,以避免出现这个问题.
});

  其中placeholder参数是指,在你的html结构中并没有直接指定src=""路径时,可以通过js动态添加。即html结构中有占位图片则不需配置该参数,反之可以配置。

  完成这些,我们就实现了对页面的图片懒加载部署了。

  对于是否真能提高页面性能,通过F12开发者工具的Network监控,我们看到:页面刷新之初确实没有请求懒加载的图片,而当页面滚到到图片所在位置,页面开始向服务器请求图片。

  理论上还是对页面优化有一定作用的,且在视觉效果上也比较个性,非常推荐各位站长朋友使用。

打赏 :
分享:
扫码支持 扫码支持
版权声明 1、文章标题:为你的网站部署jQuery.lazyload插件实现图片延迟加载
2、本文网址:https://www.ther.cn/Web/21.html
3、本站部分内容来源于网络,仅供大家学习与参考,如有侵权,请联系站长邮箱:906080088@qq.com进行处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。

广告