javascript瀑布流式图片懒加载实例


Posted in Javascript onJune 28, 2020

最近项目使用到了“懒加载”,现在更新一般,因为平时主要使移动端的开发所以库文件使用的是zepto.js 。当然也可以和jQuery 通用。

代码如下:

/**
 * Created by zhiqiang on 2015/10/14.
 * hpuhouzhiqiang@gmail.com
 * 图片的懒加载
 **/
function loadImgLazy(node) {
 var lazyNode = $('[node-type=imglazy]', node),
 mobileHeight, lazyOffSetHeight, tempHeight, currentNodeTop, imgObject,
 imgDataSrc, localUrl;

 localUrl = location.href;
 // 获取当前浏览器可视区域的高度
 mobileHeight = $(window).height();

 return function(co) {

 var conf = {
 'loadfirst': true,
 'loadimg': true
 };

 for (var item in conf) {
 if (item in co) {
 conf[item] = co[item];
 }
 }

 var that = {};
 var _this = {};
 /**
 * [replaceImgSrc 动态替换节点中的src]
 * @param {[type]} tempObject [description]
 * @return {[type]} [description]
 */
 _this.replaceImgSrc = function(tempObject) {
 var srcValue;

 $.each(tempObject, function(i, item) {
 imgObject = $(item).find('img[data-lazysrc]');
 imgObject.each(function(i) {
  imgDataSrc = $(this).attr('data-lazysrc');
  srcValue = $(this).attr('src');
  if (srcValue == '#') {
  if (imgDataSrc) {
  $(this).attr('src', imgDataSrc);
  $(this).removeAttr('data-lazysrc');
  }
  }
 });
 });
 };

 /**
 * 首屏判断屏幕上是否出现imglazy节点,有的话就加载图片
 * @param {[type]} i) {  currentNodeTop [description]
 * @return {[type]} [description]
 */
 _this.loadFirstScreen = function() {
 if (conf.loadfirst) {
 lazyNode.each(function(i) {
  currentNodeTop = $(this).offset().top;
  if (currentNodeTop < mobileHeight + 800) {
  _this.replaceImgSrc($(this));
  }
 });
 }
 };

 //当加载过首屏以后按照队列加载图片
 _this.loadImg = function() {
 if (conf.loadimg) {
 $(window).on('scroll', function() {
  var imgLazyList = $('[node-type=imglazy]', node);
  for (var i = 0; i < 5; i++) {
  _this.replaceImgSrc(imgLazyList.eq(i));
  }
 });
 }
 };

 that = {
 replaceImgSrc: _this.replaceImgSrc(),
 mobileHeight: mobileHeight,
 objIsEmpty: function(obj) {
 for (var item in obj) {
  return false;
 }
 return true;
 },
 destory: function() {
 if (_this) {
  $.each(_this, function(i, item) {
  if (item && item.destory) {
  item.destory();
  }
  });
  _this = null;
 }
 $(window).off('scroll');
 }
 };
 return that;
 };
}

希望本文对大家学习javascript图片懒加载有所帮助。

Javascript 相关文章推荐
javascript 利用Image对象实现的埋点(某处的点击数)统计
Dec 28 Javascript
table对象中的insertRow与deleteRow使用示例
Jan 26 Javascript
javascript(js)的小数点乘法除法问题详解
Mar 07 Javascript
详解AngularJS中的依赖注入机制
Jun 17 Javascript
JavaScript实现带播放列表的音乐播放器实例分享
Mar 07 Javascript
去除字符串左右两边的空格(实现代码)
May 12 Javascript
微信小程序 require机制详解及实例代码
Dec 14 Javascript
详解Angular的双向数据绑定(MV-VM)
Dec 26 Javascript
bootstrapValidator 重新启用提交按钮的方法
Feb 20 Javascript
xmlplus组件设计系列之列表(4)
Apr 26 Javascript
webpack搭建vue 项目的步骤
Dec 27 Javascript
vue生命周期实例小结
Aug 15 Javascript
Bootstrap创建可折叠的组件
Feb 23 #Javascript
理解javascript定时器中的setTimeout与setInterval
Feb 23 #Javascript
Web开发必知Javascript技巧大全
Feb 23 #Javascript
JQUERY表单暂存功能插件分享
Feb 23 #Javascript
JavaScript简单实现鼠标移动切换图片的方法
Feb 23 #Javascript
jQuery实现返回顶部功能
Feb 23 #Javascript
JavaScript添加随滚动条滚动窗体的方法
Feb 23 #Javascript
You might like
re0第二季蕾姆被制作组打入冷宫!艾米莉亚女主扶正,原因唏嘘
2020/04/02 日漫
PHP中实现进程间通讯
2006/10/09 PHP
编写安全 PHP应用程序的七个习惯深入分析
2013/06/08 PHP
php获取字符串中各个字符出现次数的方法
2015/02/23 PHP
PHP 读取大文件并显示的简单实例(推荐)
2016/08/12 PHP
10个新的最有前途的JavaScript框架
2009/03/12 Javascript
两个比较有用的Javascript工具函数代码
2010/02/17 Javascript
javascript 通用简单的table选项卡实现
2010/05/07 Javascript
推荐40个非常优秀的jQuery插件和教程【系列三】
2011/11/09 Javascript
jquery $.fn $.fx是什么意思有什么用
2013/11/04 Javascript
jquery解析JSON数据示例代码
2014/03/17 Javascript
jQuery响应enter键的实现思路
2014/04/18 Javascript
js实现支持手机滑动切换的轮播图片效果实例
2015/04/29 Javascript
超赞的动手创建JavaScript框架的详细教程
2015/06/30 Javascript
JavaScript实现图片拖曳效果
2017/09/08 Javascript
vue集成kindeditor富文本的实现示例代码
2019/06/07 Javascript
微信小程序绑定手机号获取验证码功能
2019/10/22 Javascript
JavaScript 如何在浏览器中使用摄像头
2020/12/02 Javascript
python 解析XML python模块xml.dom解析xml实例代码
2014/02/07 Python
python中__call__方法示例分析
2014/10/11 Python
Python中的字符串查找操作方法总结
2016/06/27 Python
django的settings中设置中文支持的实现
2019/04/28 Python
python模块和包的应用BASE_PATH使用解析
2019/12/14 Python
Python qrcode 生成一个二维码的实例详解
2020/02/12 Python
CSS3+HTML5+JS 实现一个块的收缩与展开动画效果
2020/11/17 HTML / CSS
美国维生素、补充剂、保健食品购物网站:Vitacost
2016/08/05 全球购物
猫途鹰英国网站:TripAdvisor英国(旅游社区和旅游评论)
2016/08/30 全球购物
香港永安旅游网:Wing On Travel
2017/04/10 全球购物
美国唇部护理专家:Sara Happ
2019/06/19 全球购物
家佳咖啡店创业计划书
2013/12/27 职场文书
销售冠军获奖感言
2014/02/03 职场文书
护士自我鉴定怎么写
2014/02/07 职场文书
学校庆元旦歌咏比赛主持词
2014/03/18 职场文书
安全保证书范文
2014/04/29 职场文书
党员弘扬焦裕禄精神思想汇报
2014/09/10 职场文书
运动会表扬稿范文
2015/05/05 职场文书