picLazyLoad 图片延时加载,包含背景图片

 1 /**
 2  * picLazyLoad 图片延时加载,包含背景图片
 3  * $(img).picLazyLoad({...})
 4  * data-original  预加载图片地址
 5  * alon
 6  */
 7 ;(function($){
 8     $.fn.imgLazyLoad = function(settings){
 9         var $this = $(this),
10             _winScrollTop = 0,
11             _winHeight = $(window).height();
12         settings = $.extend({
13             threshold: 0, // 提前高度加载
14             placeholder: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC',
15             callback:function(){}
16         }, settings||{});
17         // 执行懒加载图片
18         lazyLoadPic();
19         // 滚动触发换图
20         $(window).on('scroll',function(){
21             _winScrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
22             lazyLoadPic();
23         });
24         // 懒加载图片
25         function lazyLoadPic(){
26             $this.each(function(){
27                 var $self = $(this);
28                 if($self.is('img')){
29                     if($self.attr('data-original')){
30                         var _offsetTop = $self.offset().top;
31                         if((_offsetTop - settings.threshold) <= (_winHeight + _winScrollTop)){
32                             $self.attr('src',$self.attr('data-original'));
33                             $self.removeAttr('data-original');
34                             $self.removeClass('loadH');
35                             settings.callback($self);
36                         }
37                     }
38                 }else{
39                     if($self.attr('data-original')){// 默认占位图片
40                         if($self.css('background-image') == 'none'){
41                             $self.css('background-image','url('+settings.placeholder+')');
42                         }
43                         var _offsetTop = $self.offset().top;
44                         if((_offsetTop - settings.threshold) <= (_winHeight + _winScrollTop)){
45                             $self.css('background-image','url('+$self.attr('data-original')+')');
46                             $self.removeAttr('data-original');
47                             settings.callback($self);
48                         }
49                     }
50                 }
51             });
52         }
53     }
54 })(Zepto);
调用

1 $('img').imgLazyLoad({callback:function(data){ 2 3 })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值