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 相关文章推荐
菜单效果
Oct 14 Javascript
js实现的网站首页随机公告随机公告
Mar 14 Javascript
jquery 年会抽奖程序
Dec 22 Javascript
jQuery获取注册信息并提示实现代码
Apr 21 Javascript
JavaScript 判断用户输入的邮箱及手机格式是否正确
Dec 08 Javascript
Javascript技术难点之apply,call与this之间的衔接
Dec 04 Javascript
jquery中ajax处理跨域的三大方式
Jan 05 Javascript
jQuery插件AjaxFileUpload实现ajax文件上传
May 05 Javascript
JS实现类似百叶窗下拉菜单效果
Dec 30 Javascript
一步一步的了解webpack4的splitChunk插件(小结)
Sep 17 Javascript
Nuxt.js实战和配置详解
Aug 05 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
Sep 03 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/10/11 PHP
ThinkPHP框架设计及扩展详解
2014/11/25 PHP
php实现按照权重随机排序数据的方法
2015/01/09 PHP
php格式化金额函数分享
2015/02/02 PHP
thinkPHP实现的联动菜单功能详解
2017/05/05 PHP
PHP匿名函数(闭包函数)详解
2019/03/22 PHP
如何在PHP中使用数组
2020/06/09 PHP
jquery 模拟类搜索框自动完成搜索提示功能(改进)
2010/05/24 Javascript
关于用Jquery的height()、width()计算动态插入的IMG标签的宽高的问题
2010/12/08 Javascript
jquery.blockUI.js上传滚动等待效果实现思路及代码
2013/03/18 Javascript
浅谈js的setInterval事件
2014/12/05 Javascript
Javascript writable特性介绍
2015/02/27 Javascript
js简单实现点击左右运动的方法
2015/04/10 Javascript
js比较日期大小的方法
2015/05/12 Javascript
javascript显示倒计时控制按钮的简单实现
2016/06/07 Javascript
BootStrap智能表单实战系列(九)表单图片上传的支持
2016/06/13 Javascript
JSON与XML的区别对比及案例应用
2016/11/11 Javascript
Angular表格神器ui-grid应用详解
2017/09/29 Javascript
基于bootstrap写的一点localStorage本地储存
2017/11/21 Javascript
vue router 源码概览案例分析
2018/10/09 Javascript
JS模拟浏览器实现全局搜索功能
2019/09/11 Javascript
Js生成随机数/随机字符串的方法小结【5种方法】
2020/05/27 Javascript
python 的列表遍历删除实现代码
2020/04/12 Python
python3读取csv和xlsx文件的实例
2018/06/22 Python
查找python项目依赖并生成requirements.txt的方法
2018/07/10 Python
python网络爬虫 CrawlSpider使用详解
2019/09/27 Python
python 链接sqlserver 写接口实例
2020/03/11 Python
VSCode配合pipenv搞定虚拟环境的实现方法
2020/05/17 Python
Pandas直接读取sql脚本的方法
2021/01/21 Python
CSS伪类与CSS伪元素的区别及由来具体说明
2012/12/07 HTML / CSS
印尼旅游网站:via
2017/11/12 全球购物
The Body Shop美体小铺西班牙官网:天然化妆品
2019/06/21 全球购物
世嘉游戏英国官方商店:SEGA Shop UK
2019/09/20 全球购物
高校辅导员推荐信范文
2013/12/25 职场文书
2015新学期家长寄语
2015/02/26 职场文书
转学证明范本
2015/06/19 职场文书