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 相关文章推荐
JavaScript 学习笔记(十二) dom
Jan 21 Javascript
修改jquery.lazyload.js实现页面延迟载入
Dec 22 Javascript
javascript继承之为什么要继承
Nov 10 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
Dec 01 Javascript
Bootstrap每天必学之折叠
Apr 12 Javascript
JavaScript_object基础入门(必看篇)
Jun 13 Javascript
Bootstrap的Refresh Icon也spin起来
Jul 13 Javascript
Node.js的环境安装配置(使用nvm方式)
Oct 11 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
Apr 10 Javascript
深入理解ES6学习笔记之块级作用域绑定
Aug 19 Javascript
jQuery.validate.js表单验证插件的使用代码详解
Oct 22 jQuery
react实现同页面三级跳转路由布局
Sep 26 Javascript
浅谈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二分法查找数组是否包含某一元素
2013/05/23 PHP
PHP验证终端类型是否为手机的简单实例
2017/02/07 PHP
PHP实现文件上传后台处理脚本
2020/03/04 PHP
php封装实现钉钉机器人报警接口的示例代码
2020/08/08 PHP
js调试系列 控制台命令行API使用方法
2014/06/18 Javascript
Node.js编码规范
2014/07/14 Javascript
Javascript中数组sort和reverse用法分析
2014/12/30 Javascript
jQuery中:checkbox选择器用法实例
2015/01/03 Javascript
使用jspdf生成pdf报表
2015/07/03 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
2020/12/13 Javascript
Jquery技巧(必须掌握)
2016/03/16 Javascript
浅谈JavaScript的自动垃圾收集机制
2016/12/15 Javascript
浅谈键盘上回车按钮的js触发事件
2017/02/13 Javascript
通过fastclick源码分析彻底解决tap“点透”
2017/12/24 Javascript
angular2路由之routerLinkActive指令【推荐】
2018/05/30 Javascript
微信小程序 scroll-view 实现锚点跳转功能
2019/12/12 Javascript
[03:39]DOTA2英雄梦之声_第05期_幽鬼
2014/06/23 DOTA
[01:25]2015国际邀请赛最佳短片奖——斧王《拆塔英雄:天赋异禀》
2015/09/22 DOTA
[01:33]DOTA2上海特级锦标赛 LIQUID战队完整宣传片
2016/03/16 DOTA
python操作MongoDB基础知识
2013/11/01 Python
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
2016/06/03 Python
python实现字典(dict)和字符串(string)的相互转换方法
2017/03/01 Python
Python之str操作方法(详解)
2017/06/19 Python
在Python中增加和插入元素的示例
2018/11/01 Python
利用selenium爬虫抓取数据的基础教程
2019/06/10 Python
python实现电子书翻页小程序
2019/07/23 Python
HTML5实现晶莹剔透的雨滴特效
2014/05/14 HTML / CSS
携程旅行网:中国领先的在线旅行服务公司
2017/02/17 全球购物
Abbacino官网:包、钱包和女士配饰
2019/04/15 全球购物
可以使用抽象函数重写基类中的虚函数吗
2013/06/02 面试题
语文教学感言
2014/02/06 职场文书
最新优秀教师个人先进事迹材料
2014/05/06 职场文书
考察现实表现材料
2014/05/19 职场文书
餐厅服务员岗位职责
2015/02/09 职场文书
宾馆安全管理制度
2015/08/06 职场文书
Python预测分词的实现
2021/06/18 Python