lazyload
lazyload长页面图片的延迟加载:
一,jquery.lazyload.js
注意事项:jquery.js务必先引进,然后才加载lazyload;img长宽一定要有,每幅长宽可以不一致;在js段,可以不用$(window).ready来加载事件;
1.将图片路径写入data-original属性
2.给lazyload的图片增加一个名为lazy的class
3.选择所有要lazyload的图片(img.lazy),执行lazyload();
下面举例说明:
//注意js引入的先后顺序
<script src="jquery.js"></script>
<script src="jquery.lazyload.js"></script>
<img class="lazy" data-original="img/example.jpg" width="1330" height="900">
<img class="lazy" data-original="img/example.jpg" width="400"height="200"> //可以尺寸不一致
...//无数张你想要加载的照片
<script>
//开始全局加载
$(function(){
$("img.lazy").lazyload();
})
</script>
比较常用的方法
提前加载——threshold
lazyload默认是当滚动到该图片位置时,加载该图片。但是可以通过设置Threshold参数来实现滚到距离其xx px时就加载。
1 2 3 4 5 |
|
或
1 2 3 4 5 |
|
事件触发(可以是jquery事件,也可以是自定义事件)——Event
当触发定义的事件时,图片才开始加载
1 2 3 4 5 |
|
同时也可以
1 2 3 4 5 6 7 8 9 10 11 12 |
|
设定效果——Effects
1 2 3 4 |
|
滚动容器内的图片——container
1 2 3 4 5 6 7 8 9 10 11 |
|
二,EasyLazyload.js
比较全能的延迟加载,不会对样式有影响,最主要可以不用特意去设定图片的width和height(毕竟图片不一致的宽高大有人需要,难不成还真的一个一个去设定?)而且scroll到照片时,有缓冲视觉效果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|
关于Easylazyload.js的几个问题
如果是从服务器上请求一系列图片,lazyLoadInit()应该放在哪里触发?在ajax调用成功后 img的src替换完成后 调用 lazyLoadInit lazyLoadInit()方法,ajax给img赋值data-lazy-src属性,然后在ajax success 中调用Init方法,不然初始化的时候img的src属性还是空的;
用瀑布流ajax动态加载的图片没有效果,在ajax里的complete方法中调用lazyLoadInit()试试
三,自己用js编写不依赖jquery
当然很多大神考虑到页面性能的分析和处理力度做到最大化,以及用户滚动到页面底部之前而懒加载的无智能精准提前加载。比如我读到的设计无限滚动下拉加载,实践高性能页面真谛。 非常值得一看和学习。
相关阅读
鉴于国内交互设计名词混乱不统一,很多设计师不知道如何用专业术语称呼一个控件,因此我开了《这个控件叫什么》专题,梳理控件的名称和
相信很多刚开始学习火车头的菜鸟们,也和烂泥一样使用的是火车头免费版,然后为我们的zencart网站进行一些产品数据的采集。但是在写
告别win10图片查看器内存占用过高,使用windows原来的
win10 的问题, 现在默认的照片查看方式是照片应用, 但是一个app 你这是要逆天呀,占用这么多??还好我的是16g 但是我的16g 也刚不
参考文章:https://www.cnblogs.com/franklv/p/6829387.html 今天想给我的电脑里面多加点壁纸,但是嫌弃一个个保存太慢,于是想着写
pandas简介 Pandas是Python的一个结构化数据分析的利器。其中,DataFrame是比较常用的处理数据的对象,类似于一个数据库里的tabl