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+css实现侧边导航栏效果
Jun 12 jQuery
使用jquery+iframe做一个ajax上传效果(实例)
Aug 24 jQuery
jQuery实现仿京东防抖动菜单效果示例
Jul 06 jQuery
jQuery实现导航样式布局操作示例【可自定义样式布局】
Jul 24 jQuery
浅谈JS和jQuery的区别
Mar 27 jQuery
使用jQuery如何写一个含验证码的登录界面
May 13 jQuery
JQuery常见节点操作实例分析
May 15 jQuery
jQuery实现获取多选框的值示例
Feb 07 jQuery
jQuery实现颜色打字机的完整代码
Mar 19 jQuery
jQuery实现简单飞机大战
Jul 05 jQuery
JQuery绑定事件四种实现方法解析
Dec 02 jQuery
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
Jan 29 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
解析使用ThinkPHP应该掌握的调试手段
2013/06/20 PHP
理解PHP中的Session及对Session有效期的控制
2016/01/08 PHP
PHP中一个有趣的preg_replace函数详解
2018/08/15 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
ThinkPHP 5.1 跨域配置方法
2019/10/11 PHP
javascript 选择文件夹对话框(web)
2009/07/07 Javascript
关于scrollLeft,scrollTop的浏览器兼容性测试
2013/03/19 Javascript
javascript的parseFloat()方法精度问题探讨
2013/11/26 Javascript
鼠标滑过出现预览的大图提示效果
2014/02/26 Javascript
分享一个自己动手写的jQuery分页插件
2014/08/28 Javascript
理解jQuery stop()方法
2014/11/21 Javascript
PHP和NodeJs开发的应用如何共用Session
2015/04/16 NodeJs
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
2016/10/08 Javascript
JS调用某段SQL语句的方法
2016/10/20 Javascript
微信小程序 devtool隐藏的秘密
2017/01/21 Javascript
javascript实现右下角广告框效果
2017/02/01 Javascript
jquery uploadify隐藏上传进度的实现方法
2017/02/06 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
2017/11/13 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
vue学习笔记之作用域插槽实例分析
2020/02/01 Javascript
vue.js实现照片放大功能
2020/06/23 Javascript
[34:39]Secret vs VG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Python实现类继承实例
2014/07/04 Python
Django框架中数据的连锁查询和限制返回数据的方法
2015/07/17 Python
Python语言描述KNN算法与Kd树
2017/12/13 Python
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
使用Python实现windows下的抓包与解析
2018/01/15 Python
Python实现FTP文件传输的实例
2019/07/07 Python
Python Opencv图像处理基本操作代码详解
2020/08/31 Python
Python3+Django get/post请求实现教程详解
2021/02/16 Python
Yahoo-PHP面试题3
2012/01/14 面试题
银行办理业务介绍信
2014/01/18 职场文书
师德学习感言
2014/01/31 职场文书
2014年艾滋病防治工作总结
2014/12/10 职场文书
国情备忘录观后感
2015/06/04 职场文书
记者节感言
2015/08/03 职场文书