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 学习笔记(五)
Dec 31 Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
Nov 21 Javascript
浅析IE10兼容性问题(frameset的cols属性)
Jan 03 Javascript
JavaScript使用indexOf获得子字符串在字符串中位置的方法
Apr 06 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
Jul 05 Javascript
Javascript vue.js表格分页,ajax异步加载数据
Oct 24 Javascript
JavaScript数据结构学习之数组、栈与队列
May 02 Javascript
javascript编程开发中取色器及封装$函数用法示例
Aug 09 Javascript
详解Vue结合后台的列表增删改案例
Aug 21 Javascript
layui动态绑定事件的方法
Sep 20 Javascript
Vue父组件向子组件传值以及data和props的区别详解
Mar 02 Javascript
JavaScript实现五子棋小游戏
Oct 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对MongoDB[NoSQL]数据库的操作
2013/03/01 PHP
php实现获取及设置用户访问页面语言类
2014/09/24 PHP
php简单实现查询数据库返回json数据
2015/04/16 PHP
php  单例模式详细介绍及实现源码
2016/11/05 PHP
jquery入门——事件机制之事件中的冒泡现象示例解释
2020/09/12 Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
2013/11/21 Javascript
ECMAScript6函数默认参数
2015/06/12 Javascript
jquery实现的缩略图预览滑块实例
2015/06/25 Javascript
jQuery网页版打砖块小游戏源码分享
2015/08/20 Javascript
js实现跨域的4种实用方法原理分析
2015/10/29 Javascript
使用jQuery获取data-的自定义属性
2015/11/10 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
2016/10/27 Javascript
详解Js模板引擎(TrimPath)
2016/11/22 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
2017/07/17 Javascript
TypeScript基础入门教程之三重斜线指令详解
2018/10/22 Javascript
Vue组件内部实现一个双向数据绑定的实例代码
2019/04/04 Javascript
解决vuex刷新状态初始化的方法实现
2019/08/15 Javascript
浅谈小程序globalData的那些事儿
2019/11/01 Javascript
[01:04:02]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第二场 1月24日
2021/03/11 DOTA
wxPython中listbox用法实例详解
2015/06/01 Python
python选择排序算法实例总结
2015/07/01 Python
详解python string类型 bytes类型 bytearray类型
2017/12/16 Python
Python爬虫抓取技术的一些经验
2019/07/12 Python
Python字符串处理的8招秘籍(小结)
2019/08/13 Python
CSS3 三维变形实现立体方块特效源码
2016/12/15 HTML / CSS
Joie官方网上商店:购买服装和女装配饰
2018/06/05 全球购物
香蕉共和国加拿大官网:Banana Republic加拿大
2018/08/06 全球购物
Kathmandu美国网站:新西兰户外运动品牌
2019/03/23 全球购物
ghd法国官方网站:英国最受欢迎的美发工具品牌
2019/04/18 全球购物
介绍Ibatis的核心类
2013/11/18 面试题
火车来了教学反思
2014/02/11 职场文书
在宿舍喝酒的检讨书
2014/09/28 职场文书
python正则表达式re.search()的基本使用教程
2021/05/21 Python
python实现层次聚类的方法
2021/11/01 Python
mysql中关键词exists的用法实例详解
2022/06/10 MySQL
MySQL索引失效场景及解决方案
2022/07/23 MySQL