图片懒加载(延迟加载)

图片懒加载(延迟加载)的简单封装,使用jq1.8.3版本

图片懒加载(延迟加载):浏览器可视区域外的图片不会被载入,直到图片在可视区的时候,设置图片正真的路径,让图片显示出来。

效果:可以加快页面加载速度。减少浏览器的http请求,降低服务器负担。

 1 function showImg(obj, callback) { 
 2     /*obj图片懒加载(范围)元素父级
 3     * callback图片懒加载完成后的回调函数
 4     * img标签结构 例<img src="通用的统一的默认图片链接" data_src="真正要展示的图片链接" err_src="图片呢加载失败后的链接">
 5     **/
 6     if (!obj) return;
 7     /*获取滚动条的距离*/
 8     var wScroll = $(window).scrollTop(),
 9         wHeight = $(window).height();
10     
11     showImg1();
12     /*页面滚动的时候绑定事件,
13      * 在这里绑定的时候先解除事件绑定,
14      * 主要是showImg在重复调用的情况下
15      * */
16     $(window).off('scroll', showImg1);
17     $(window).on('scroll', showImg1);
18 
19     function showImg1() {
20         $(obj).find('img').each(function() { //遍历所有图片    
21             //当前图片对象
22             var othis = $(this);
23             //当前图片距页面顶部距离
24             var offsTop = $(this).offset().top; 
25             //当前图片高度
26             var tHeight = $(this).height();                     
27             //页面可视区底部
28             var wBottom = wScroll + wHeight; 
29              //当前图片底距顶部高度
30             var wTop = offsTop + tHeight;
31             
32             //如果该图片在可视区可见
33             if (wBottom >= offsTop && wTop >=wScroll) { 
34                 //可见的时候并且存在自定义属性data_src,把占位值替换 并删除占位属性   
35                 if(othis.attr('data_src')){
36                     othis.attr('src', othis.attr('data_src')).removeAttr('data_src'); 
37                     //如果有需要,引用图片加载失败showImgError方法
38                     showImgError(othis);
39                     /*这里执行回调函数*/
40                     callback&&callback();
41                 }
42             }
43         });
44     };
45     /* 图片加载失败
46      * 这里如果图片懒加载失败,再次更换图片
47      * 图片标签中需要有 err_src='错误后图片链接' 的自定义属性
48      * */
49     function showImgError(that){
50        that.error(function(){
51            if(that.attr('err_src')){
52               that.attr('src', that.attr('err_src')).removeAttr('err_src');
53             }
54         });
55     }
56 }

 

posted @ 2017-05-10 16:36  异能嗜界  阅读(167)  评论(0)    收藏  举报