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 相关文章推荐
判断控件是否已加载完成的代码
Feb 24 Javascript
js 窗口抖动示例
Sep 04 Javascript
jQuery学习总结之jQuery事件
Jun 30 Javascript
jQuery中change事件用法实例
Dec 26 Javascript
jQuery左侧大图右侧小图焦点图幻灯切换代码分享
Aug 19 Javascript
Boostrap模态窗口的学习小结
Mar 28 Javascript
js 动态给元素添加、移除事件的实现方法
Jul 19 Javascript
js中动态创建json,动态为json添加属性、属性值的实例
Dec 02 Javascript
vue+ElementUI实现订单页动态添加产品数据效果实例代码
Jul 13 Javascript
微信小程序分享小程序码的生成(带参数)以及参数的获取
Mar 25 Javascript
如何利用js在两个html窗口间通信
Apr 27 Javascript
vue使用refs获取嵌套组件中的值过程
Mar 31 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操作xml
2013/10/27 PHP
Zend Framework页面缓存实例
2014/06/25 PHP
PHP生成数组再传给js的方法
2014/08/07 PHP
简单介绍PHP的责任链编程模式
2015/08/11 PHP
发现的以前不知道的函数
2006/09/19 Javascript
在JavaScript中,为什么要尽可能使用局部变量?
2009/04/06 Javascript
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
juqery 学习之六 CSS--css、位置、宽高
2011/02/11 Javascript
html组件不可输入(只读)同时任何组件都有效
2013/04/01 Javascript
js实现显示当前状态的导航效果代码
2015/08/28 Javascript
BootStrap selectpicker
2016/06/20 Javascript
jquery实现全选、不选、反选的两种方法
2016/09/06 Javascript
详解利用exif.js解决ios手机上传竖拍照片旋转90度问题
2016/11/04 Javascript
jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)
2016/11/09 Javascript
vue2笔记 — vue-router路由懒加载的实现
2017/03/03 Javascript
Javascript中字符串相关常用的使用方法总结
2017/03/13 Javascript
vue学习笔记之Vue中css动画原理简单示例
2020/02/29 Javascript
python实现文本去重且不打乱原本顺序
2016/01/26 Python
python直接访问私有属性的简单方法
2016/07/25 Python
python+opencv实现的简单人脸识别代码示例
2017/11/14 Python
让Python脚本暂停执行的几种方法(小结)
2019/07/11 Python
对于Python深浅拷贝的理解
2019/07/29 Python
Django框架安装方法图文详解
2019/11/04 Python
python装饰器的特性原理详解
2019/12/25 Python
Python-openCV开运算实例
2020/07/05 Python
Python函数__new__及__init__作用及区别解析
2020/08/31 Python
意大利巧克力店:Chocolate Shop
2019/07/24 全球购物
保加利亚手表、香水、化妆品和珠宝购物网站:Brasty.bg
2020/04/22 全球购物
大学生求职中的自我评价
2013/10/01 职场文书
应届生自我鉴定
2013/12/11 职场文书
开展党的群众路线教育实践活动工作总结
2014/11/05 职场文书
拾金不昧表扬稿
2015/01/16 职场文书
公务员保密工作承诺书
2015/05/04 职场文书
个人工作失误的保证书怎么写?
2019/06/21 职场文书
MySQL 全文索引使用指南
2021/05/25 MySQL
Spring Boot 启动、停止、重启、状态脚本
2021/06/26 Java/Android