对于有较多的图片的网页,使用图片延迟加载,能有效的提高页面加载速度,比如商城网页。
lazyload使用方法:
载入 JavaScript 文件:
<script src="jquery.js"></script>
<script src="jquery.lazyload.js"></script>
修改 HTML 代码中需要延迟加载的 IMG 标签:
<!--
将真实图片地址写在 data-original 属性中,而 src 属性中的图片换成占位符的图片(例如 1x1 像素的灰色图片或者 loading 的 gif 图片)
添加 class="lazy" 用于区别哪些图片需要延时加载,当然你也可以换成别的关键词,修改的同时记得修改调用时的 jQuery 选择器
添加 width 和 height 属性有助于在图片未加载时占满所需要的空间
-->
<img class="lazy" src="grey.gif" data-original="example.jpg" width="640" heigh="480">
调用 Lazy Load:
$('img.lazy').lazyload();
参数参考网址:http://code.ciaoca.com/jquery/lazyload/
Lazy Load遇到的问题:当图片只指定width而没有设定height的时候,图片未加载时的占位是width=height的大小;
项目中遇到的问题,当页面中同时使用swiper插件做图片轮播的时候,就不能使用Lazy Load来处理轮播的图片,这时就需要使用swiper的延迟加载参数-lazyLoading:true;
具体使用方法:(http://www.swiper.com.cn/api/Images/2015/0308/213.html)
设为true开启图片延迟加载,使preloadImages无效。
需要将图片img标签的src改写成data-src,并且增加类名swiper-lazy。
背景图的延迟加载则增加属性data-background(3.0.7开始启用)。
<div class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide">
<img data-src="path/to/picture-1.jpg" class="swiper-lazy">
<div class="swiper-lazy-preloader"></div>
</div>
<div class="swiper-slide">
<img data-src="path/to/picture-2.jpg" class="swiper-lazy">
<div class="swiper-lazy-preloader"></div>
</div>
<div class="swiper-slide">
<div data-background="path/to/picture-3.jpg" class="swiper-lazy">slide3</div>
</div>
</div>
</div>
<!-调用->
<script>
var mySwiper = new Swiper('.swiper-container',{
lazyLoading : true,
})
</script>
swiper lazy遇到的问题:当图片只指定width而没有设定height的时候,图片未加载时的占位是height=0的大小;