PC端、移动端(手机端)图片懒加载方法整理

来源:互联网 发布:c 模拟退火算法 题目 编辑:程序博客网 时间:2024/06/05 09:34

1、PC端图片懒加载:

jquery.lazyload是一个实现图片延迟加载的jQuery 插件,它可以延迟加载长页面中的图片。在浏览器可视区域外的图片在初始状态下不会被载入,直到用户将页面滚动到它们所在的位置。

1.引入js文件

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.lazyload/1.9.1/jquery.lazyload.min.js"></script>

2.img标签

<img class = "lazy" src="images/placeholder.gif" data-original="images/example.png">

img标签的src指向一个图片占位符,这里推荐一个在线获取图片占位符的站点 > http://placehold.it/,真实图片路径必须写在data-original中。

3.调用lazyload

$("img.lazy").lazyload();

图片的占位符除了可以通过src属性来指定,也可以通过lazyload函数的参数来指定:

$("img.lazy").lazyload({    placeholder: "images/placeholder.gif"});

4.占位图片事件触发加载

如果我们希望滚到到图片的位置后,还要通过click或hover事件来唤醒图片的加载,我们可以指定lazyload函数的event属性:

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

当图片完全加载的时候,插件默认地使用show()方法来将图显示出来。你也可以使用其他的效果,如fadeIn:

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

5.提前加载图片

lazyload插件默认用户滚动到图片位置时才触发加载图片,如果我们希望滚动到距离图片一定位置就触发加载,可以指定lazyload函数的threshold参数:

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

这样,当用户滚动到距离图片200像素时图片就开始加载了。

6.设置查找图片张数

lazyload的实现原理是,在页面滚动时,会搜索未加载的图片,如果图片在可视范围内就加载,默认情况下当找到第一张不在可见区域的图片时就会停止搜索。而搜索的顺序就是HTML文档中dom节点的定义顺序,所以如果有些图片定义在前面,但由于页面不好的布局图片将会呈现在后面,那么就会导致图片没办法正常显示。

此时我们可以通过lazyload函数的failure_limit参数:

$("img.lazy").lazyload({              failure_limit: 10});

这样一来,插件会搜索至少10个未加载的图片才停止搜索,如果你的图片布局比较不规则,可以尝试将这个参数调大。

下面这是一个demo 直接复制粘贴到sublime上就能查看了 比心♥ ♥

// 首先引入jQuery文件和懒加载文件    <script type="text/JavaScript" src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script><script type="text/javascript" src="http://www.w3cways.com/demo/LazyLoad/js/jquery.lazyload.js"></script><div><img class="lazy" data-original="https://www.juzilicai.com/res/img/v2/intro/novice/vip_top.jpg"><img class="lazy" data-original="https://www.juzilicai.com/res/img/v2/intro/novice/vip_top.jpg"><img class="lazy" data-original="https://www.juzilicai.com/res/img/v2/intro/novice/vip_top.jpg"><img class="lazy" data-original="https://www.juzilicai.com/res/img/v2/intro/novice/vip_top.jpg"><img class="lazy" data-original="https://www.juzilicai.com/res/img/v2/intro/novice/vip_top.jpg"><img class="lazy" data-original="https://www.juzilicai.com/res/img/v2/intro/novice/vip_top.jpg"><img class="lazy" data-original="https://www.juzilicai.com/res/img/v2/intro/novice/vip_top.jpg"><img class="lazy" data-original="https://www.juzilicai.com/res/img/v2/intro/novice/vip_top.jpg"><img class="lazy" data-original="https://www.juzilicai.com/res/img/v2/intro/novice/vip_top.jpg"><img class="lazy" data-original="https://www.juzilicai.com/res/img/v2/intro/novice/vip_top.jpg"><img class="lazy" data-original="https://www.juzilicai.com/res/img/v2/intro/novice/vip_top.jpg"><img class="lazy" data-original="https://www.juzilicai.com/res/img/v2/intro/novice/vip_top.jpg"><img class="lazy" data-original="https://www.juzilicai.com/res/img/v2/intro/novice/vip_top.jpg"></div><script type="text/javascript">$(function() {$("img.lazy").lazyload({    placeholder: "https://www.juzilicai.com/res/img/v2/intro/novice/vip_top.jpg",    effect : "fadeIn"});});</script>

根据用户行为的预加载

http://www.zhangxinxu.com/wordpress/2016/06/image-preload-based-on-user-behavior/

这个文章有时间可以看看

2、Mobile移动端懒加载:

其实这个echo.js图片懒加载插件不仅适合移动端,而且在PC端同样适用,可谓兼容PC和Mobile的图片延迟加载插件!!!

<ul class="image_view1">    <li><a href="#"><img src="css/blank.gif" data-echo="images/2.jpg" /></a></li>    <li><a href="#"><img src="css/blank.gif" data-echo="images/3.jpg" /></a></li>    <li><a href="#"><img src="css/blank.gif" data-echo="images/4.jpg" /></a></li>    <li><a href="#"><img src="css/blank.gif" data-echo="images/5.jpg" /></a></li>    <li><a href="#"><img src="css/blank.gif" data-echo="images/6.jpg" /></a></li>    <li><a href="#"><img src="css/blank.gif" data-echo="images/7.jpg" /></a></li>    <li><a href="#"><img src="css/blank.gif" data-echo="images/8.jpg" /></a></li>    <li><a href="#"><img src="css/blank.gif" data-echo="images/9.jpg" /></a></li>    <li><a href="#"><img src="css/blank.gif" data-echo="images/10.jpg" /></a></li>    <li><a href="#"><img src="css/blank.gif" data-echo="images/11.jpg" /></a></li></ul>
<script type="text/javascript">    //更多详细调用:https://github.com/toddmotto/echo    echo.init();</script>
阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 三个月大婴儿不吃奶粉怎么办 三个月大的婴儿不吃奶粉怎么办 40天宝宝肚脐凸怎么办 6个月婴儿消化不好怎么办 2个月婴儿消化不好怎么办 10月婴儿不吃饭怎么办 9个月宝宝不吃饭怎么办 十个多月的宝宝便秘怎么办 十个多月宝宝便秘怎么办 8个月宝宝过敏怎么办 宝宝二十个月便秘怎么办 7个月宝宝便秘拉不出怎么办 二十六个月宝宝便秘怎么办 八个月宝宝吃鸡蛋过敏怎么办 8个月宝宝 吃盐怎么办 40多天婴儿拉肚怎么办 刚出生婴儿拉肚怎么办 20多天婴儿拉肚怎么办 米汤煮的太稠了怎么办 两岁宝宝不吃蔬菜怎么办 两岁宝宝不爱吃蔬菜怎么办 四个月宝宝头有点歪怎么办 宝宝吃过了还闹怎么办 ddrops d3吃多了怎么办 ddrops d3滴多了怎么办 维生素d滴多了怎么办 ddrops最后滴不出来的怎么办 ddrops一次滴3滴怎么办 小孩子头睡偏了怎么办 7岁儿童头睡偏了怎么办 婴儿后脑睡平了怎么办 六个月宝宝免疫力低怎么办 十个月宝宝食烧怎么办 6个月宝宝感冒了怎么办 5个月宝宝腿短怎么办 5个月宝宝太瘦怎么办 宝宝喝了浓奶粉怎么办 一岁把尿不尿怎么办 五个月的宝宝大便干燥怎么办 婴儿便秘怎么办什么方法最有效 8个月小孩便秘怎么办