分享一个前端懒加载插件。公司之前做一个选美投票的活动,号称几百上千个选手。
所做优化:1、图片放在阿里云挂载。
2、后端做分页查询。
3、前端做图片懒加载。
需要引入js:
<script src="http://www.ibok.wang/source/javascripts/jquery-3.1.1.min.js">
</script><script src="http://www.ibok.wang/source/javascripts/jquery.lazyload.min.js"></script>
html代码:<img class="lazy" data-original="图片src">
初始化代码:<script>
//初始化,这里effect的fadeIn的属性只是图片的一种出现方式,方式有很多种,我用的是这一种。还可添加其他参数:
//1、placeholder : "img/grey.gif",
//2、载入使用何种效果:effect : "fadeIn", eg:effect(特效),值有show(直接显示),fadeIn(淡入),slideDown(下拉)等,常用fadeIn
//3、提前开始加载:threshold : 200, eg:参数:threshold,值为数字,代表页面高度.如设置为200,表示滚动条在离目标位置还有200的高度时就开始加载图片,可以做到不让用户察觉.
//4、事件触发时才加载:event : "click", eg:参数:event,值有click(点击),mouseover(鼠标划过),sporty(运动的),foobar(…).可以实现鼠标莫过或点击图片才开始加载,后两个值未测试…
//5、对某容器中的图片实现效果:container: $("#container"), eg:参数:container,值为某容器.lazyload默认在拉动浏览器滚动条时生效,这个参数可以让你在拉动某DIV的滚动条时依次加载其中的图片
//6、图片排序混乱时:failurelimit : 10, eg:参数:failurelimit,值为数字.lazyload默认在找到第一张不在可见区域里的图片时则不再继续加载,但当HTML容器混乱的时候可能出现可见区域内图片并没加载出来的情况,failurelimit意在加载N张可见区域外的图片,以避免出现这个问题.
$("img.lazy").lazyload({effect: "fadeIn"});
//如果做了分页处理,最好把已经懒加载过的图片的lazy类名去掉,不然图片会有闪动。代码如下
//$("img.lazy").removeClass("lazy");</script>
//纯手打,不喜勿喷,欢迎指点。