picLazyLoad 实现图片延时加载(包含背景图片)


Posted in Javascript onJuly 21, 2016

如下所示: 

/**
 * picLazyLoad 图片延时加载,包含背景图片
 * $(img).picLazyLoad({...})
 * data-original 预加载图片地址
 * alon
 */
;(function($){
  $.fn.imgLazyLoad = function(settings){
    var $this = $(this),
      _winScrollTop = 0,
      _winHeight = $(window).height();
    settings = $.extend({
      threshold: 0, // 提前高度加载
      placeholder: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC',
      callback:function(){}
    }, settings||{});
    // 执行懒加载图片
    lazyLoadPic();
    // 滚动触发换图
    $(window).on('scroll',function(){
      _winScrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
      lazyLoadPic();
    });
    // 懒加载图片
    function lazyLoadPic(){
      $this.each(function(){
        var $self = $(this);
        if($self.is('img')){
          if($self.attr('data-original')){
            var _offsetTop = $self.offset().top;
            if((_offsetTop - settings.threshold) <= (_winHeight + _winScrollTop)){
              $self.attr('src',$self.attr('data-original'));
              $self.removeAttr('data-original');
              $self.removeClass('loadH');
              settings.callback($self);
            }
          }
        }else{
          if($self.attr('data-original')){// 默认占位图片
            if($self.css('background-image') == 'none'){
              $self.css('background-image','url('+settings.placeholder+')');
            }
            var _offsetTop = $self.offset().top;
            if((_offsetTop - settings.threshold) <= (_winHeight + _winScrollTop)){
              $self.css('background-image','url('+$self.attr('data-original')+')');
              $self.removeAttr('data-original');
              settings.callback($self);
            }
          }
        }
      });
    }
  }
})(Zepto);

调用

$('img').imgLazyLoad({callback:function(data){
 
 })

以上这篇picLazyLoad 实现图片延时加载(包含背景图片)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery ajax提交整个表单元素的快捷办法
Mar 27 Javascript
javascript(js)的小数点乘法除法问题详解
Mar 07 Javascript
js判断文本框剩余可输入字数的方法
Feb 04 Javascript
微信小程序 数组中的push与concat的区别
Jan 05 Javascript
浅析JavaScript中var that=this
Feb 17 Javascript
php输出全部gb2312编码内的汉字方法
Mar 04 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
Apr 24 Javascript
js实现点击切换checkbox背景图片的简单实例
May 08 Javascript
使用js实现将后台传入的json数据放在前台显示
Aug 06 Javascript
Javascript 之封装(Package)
Sep 14 Javascript
BootStrap前端框架使用方法详解
Feb 26 Javascript
vue+element table表格实现动态列筛选的示例代码
Jan 14 Vue.js
浅谈DOCTYPE对$(window).height()取值的影响
Jul 21 #Javascript
jQuery新窗口打开外链接
Jul 21 #Javascript
JS for循环中i++ 和 ++i的区别介绍
Jul 20 #Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
Jul 20 #Javascript
Node.js如何自动审核团队的代码
Jul 20 #Javascript
js只执行1次的函数示例
Jul 20 #Javascript
JQuery为元素添加样式的实现方法
Jul 20 #Javascript
You might like
php中Session的生成机制、回收机制和存储机制探究
2014/08/19 PHP
PHP判断FORM表单或URL参数来的数据是否为整数的方法
2016/03/25 PHP
PHP设计模式之模板方法模式实例浅析
2018/12/20 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
jQuery1.6 正式版发布并提供下载
2011/05/05 Javascript
JavaScript String.replace函数参数实例说明
2013/06/06 Javascript
理解javascript中的回调函数(callback)
2014/09/02 Javascript
jQuery控制元素显示、隐藏、切换、滑动的方法总结
2015/04/16 Javascript
Jquery实现遮罩层的方法
2015/06/08 Javascript
TypeScript Type Innference(类型判断)
2016/03/10 Javascript
详解JavaScript中双等号引起的隐性类型转换
2016/05/30 Javascript
JavaScript必知必会(七)js对象继承
2016/06/08 Javascript
Angular ng-repeat 对象和数组遍历实例
2016/09/14 Javascript
js插件Jcrop自定义截取图片功能
2016/10/14 Javascript
基于jquery二维码生成插件qrcode
2017/01/07 Javascript
深入理解vue.js中$watch的oldvalue与newValue
2017/08/07 Javascript
Vue下的国际化处理方法
2017/12/18 Javascript
深入了解JavaScript代码覆盖
2019/06/13 Javascript
JavaScript 斐波那契数列 倒序输出 输出100以内的质数代码实例
2019/09/11 Javascript
Vue实现开关按钮拖拽效果
2020/09/22 Javascript
Python 遍历列表里面序号和值的方法(三种)
2017/02/17 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
2018/05/31 Python
Python列表切片操作实例总结
2019/02/19 Python
详解python和matlab的优势与区别
2019/06/28 Python
python的等深分箱实例
2019/11/22 Python
python 解决cv2绘制中文乱码问题
2019/12/23 Python
Python利用FFT进行简单滤波的实现
2020/02/26 Python
python 实现超级玛丽游戏
2020/11/25 Python
梅西百货澳大利亚:Macy’s Australia
2017/07/26 全球购物
产品销售计划书
2014/05/04 职场文书
计算机专业自荐信范文
2014/05/28 职场文书
公司应聘自荐书
2014/06/14 职场文书
2014年团委工作总结
2014/11/13 职场文书
归元寺导游词
2015/02/06 职场文书
成功的商业计划书这样写才最靠谱
2019/07/12 职场文书
Win11怎么把合并的任务栏分开 Win11任务栏合并分开教程
2022/04/06 数码科技