jquery插件插件lazyload.js延迟加载图片的使用方法延迟加载图片的使用方法
如果一个网页很长并且有很多图片的话,下载图片就需要很多时间,那么就会影响整个网页的加载速度,而这款延迟加载插
件,会通过你的滚动情况来加载你需要看的图片,然后它才会从后台请求下载图片,最后显示出来。通过这个插件,可以在需
要显示图片的时候,才下载图片,从而可以减少服务器的压力,提高页面加载速度。
Lazy Load 插件原理插件原理
修改目标img元素的src属性为orginal属性,从而中断图片的加载。检测滚动状态,然后把网页可视区域中的img的src属性还原
然后加载图片,从而制造了一种缓冲加载的效果。代码引入方法:
代码如下:
<script type=”text/javascript” src=”js/jquery-1.8.3.min.js”></script>
<script type=”text/javascript” src=”js/jquery.lazyload.js”></script>
<script type=”text/javascript”>
$(document).ready(
function($){
$(“img”).lazyload({
placeholder : “images/grey.gif”, //加载图片前的占位图片
effect : “fadeIn” //加载图片使用的效果(淡入)
});
});
</script>
但是现在,很多Javascript大牛分析得出,这个插件其实并没有真正的起到缓加载的作用。确实是这样,官方也已经给出了说
明和解决方法了。
其实原因就在于在新版的浏览器中,即使我们删除了Javascript控制的src属性,浏览器仍然会去加载这个图像。
那么我们该怎么解决呢?其实也很简单,需要直接修改HTML的结构,在img标签中添加新的属性,把src属性的值指向占位图
片,添加data-original属性,让其指向真正的图像地址。比如:
代码如下:
<img src=”img/grey.gif” data-original=”img/example.jpg” >
当然,在上面的代码中我们把页面内的所有图片都延迟加载了,但有些时候我们并不希望这样,因为有些图片并不想然他们延
迟加载,那么我们可以这样只需做:
如只缓冲加载类main下的图像
代码如下:
$(“.main img”).lazyload({
placeholder : “images/grey.gif”,
effect : “fadeIn”
});
加载挂载有lazy类的图像: