jquery实现异步加载图片(懒加载图片一种方式)


Posted in jQuery onApril 24, 2017

首先将插件在jq后面引入

(function($) { 
        // alert($.fn.scrollLoading); 
        $.fn.scrollLoading = function(options) { 
          var defaults = { 
            attr: "data-url" 
          }; 
          var params = $.extend({}, defaults, options || {}); 
          params.cache = []; 
          $(this).each(function() { 
            var node = this.nodeName.toLowerCase(), 
              url = $(this).attr(params["attr"]); 
            if(!url) { 
              return; 
            } 
            var data = { 
              obj: $(this), 
              tag: node, 
              url: url 
            }; 
            params.cache.push(data); 
          }); 
 
          var loading = function() { 
            var st = $(window).scrollTop(), 
              sth = st + $(window).height(); 
            $.each(params.cache, function(i, data) { 
              var o = data.obj, 
                tag = data.tag, 
                url = data.url; 
              if(o) { 
                post = o.position().top; 
                posb = post + o.height(); 
                if((post > st && post < sth) || (posb > st && posb < sth)) { 
                  if(tag === "img") { 
                    o.attr("src", url); 
                  } else { 
                    o.load(url); 
                  } 
                  data.obj = null; 
                } 
              } 
            }); 
            return false; 
          }; 
 
          loading(); 
          $(window).bind("scroll", loading); 
        }; 
      })(jQuery);

然后在底部初始化

$(document).ready(function () { 
    //实现图片慢慢浮现出来的效果 
    $("img").load(function () { 
      //图片默认隐藏  
      $(this).hide(); 
      //使用fadeIn特效  
      $(this).fadeIn("5000"); 
    }); 
    // 异步加载图片,实现逐屏加载图片 
    $(".scrollLoading").scrollLoading();  
  });

需要修改img标签为

<img class="scrollLoading" data-url="image/logo.jpg" src="images/load.gif" />

data-url表示将要异步加载的图片,src表示首先加载的图片(一般会是小图片,或者是一个动画,网页中全部的src链接同一个图片,这样网页就加载快好多,这个时候再异步的加载要加载的图片,也就现在要说的功能)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jQuery插件FusionCharts绘制的2D帕累托图效果示例【附demo源码】
Mar 28 jQuery
关于jQuery库冲突的完美解决办法
May 20 jQuery
全面解析jQuery中的$(window)与$(document)的用法区别
Aug 15 jQuery
jQuery实现动态控制页面元素的方法分析
Dec 20 jQuery
jQuery 实现左右两侧菜单添加、移除功能
Jan 02 jQuery
jQuery封装animate.css的实例
Jan 04 jQuery
jQuery实现滚动到底部时自动加载更多的方法示例
Feb 18 jQuery
Jquery 动态添加元素并添加点击事件实现过程解析
Oct 12 jQuery
jQuery 判断元素是否存在然后按需加载内容的实现代码
Jan 16 jQuery
jQuery实现的移动端图片缩放功能组件示例
May 01 jQuery
jQuery实现日历效果
Sep 11 jQuery
使用jQuery ajaxupload插件实现无刷新上传文件
Apr 23 #jQuery
jQuery实现百度登录框的动态切换效果
Apr 21 #jQuery
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
Apr 21 #jQuery
jquery中$.fn和图片滚动效果实现的必备知识总结
Apr 21 #jQuery
jQuery+pjax简单示例汇总
Apr 21 #jQuery
基于jQuery实现文字打印动态效果
Apr 21 #jQuery
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
Apr 20 #jQuery
You might like
使用MaxMind 根据IP地址对访问者定位
2006/10/09 PHP
php牛逼的面试题分享
2013/01/18 PHP
如何使用PHP批量去除文件UTF8 BOM信息
2013/08/05 PHP
PHP面向对象程序设计之对象的遍历操作示例
2019/06/12 PHP
jquery下json数组的操作实现代码
2010/08/09 Javascript
jquery 操作日期、星期、元素的追加的实现代码
2012/02/07 Javascript
jquery单行文字向上滚动效果的实现代码
2014/09/05 Javascript
jQuery实现的向下图文信息滚动效果
2015/05/03 Javascript
js的flv视频播放器插件使用方法
2015/06/23 Javascript
深入理解JavaScript中的箭头函数
2015/07/28 Javascript
JavaScript中自带的 reduce()方法使用示例详解
2016/08/10 Javascript
Bootstrap的fileinput插件实现多文件上传的方法
2016/09/05 Javascript
Vue中定义全局变量与常量的各种方式详解
2017/08/23 Javascript
Vue Prop属性功能与用法实例详解
2019/02/23 Javascript
element-ui 中使用upload多文件上传只请求一次接口
2019/07/19 Javascript
python编写暴力破解FTP密码小工具
2014/11/19 Python
Python素数检测的方法
2015/05/11 Python
详解python3实现的web端json通信协议
2016/12/29 Python
python操作excel的方法
2018/08/16 Python
python找出列表中大于某个阈值的数据段示例
2019/11/24 Python
Python交互环境下打印和输入函数的实例内容
2020/02/16 Python
Python日志处理模块logging用法解析
2020/05/19 Python
浅谈优化Django ORM中的性能问题
2020/07/09 Python
python实现马丁策略回测3000只股票的实例代码
2021/01/22 Python
美国打印机墨水和碳粉购物网站:QuikShip Toner
2018/08/29 全球购物
Nike俄罗斯官方网站:Nike RU
2021/03/05 全球购物
团日活动策划书
2014/02/01 职场文书
模具专业毕业推荐信
2014/03/08 职场文书
高中教师评语大全
2014/04/25 职场文书
小小商店教学反思
2014/04/27 职场文书
2014年党员自我评议总结
2014/09/23 职场文书
2014年法务工作总结
2014/12/11 职场文书
JavaScript实现复选框全选功能
2021/04/11 Javascript
python基础入门之字典和集合
2021/06/13 Python
教你快速构建一个基于nginx的web集群项目
2021/11/27 Servers
SpringBoot2零基础到精通之数据与页面响应
2022/03/22 Java/Android