angular实现图片懒加载实例代码


Posted in Javascript onJune 08, 2017

这两天一直纠结angular的图片懒加载插件中无法自拔。在使用过程深深感到js学艺不精的痛苦,想修改源码又不会修改,只能尽力压榨如何使用插件上。这里主要谈谈在使用插件的过程遇到的一些问题。

 一)我使用的是angular-imglazyload这个插件。【https://www.npmjs.com/package/angular-imglazyload】主要是这个插件小不依赖jquery库,然后下载源码运行成功后,我就整合到自己项目上运行,结果发现竟然只有前2张加载了,滚动了都没有反映。下面是我的代码部分:

<div ng-repeat="Digest in Digest_cont track by $index"> 
     <img src="" data-ui-lazyload="{{Digest.val}}" onerror="this.src='img/default@2x_300X300.png'" ng-if="Digest.type=='img'" alt=""> 
     <div ng-if="Digest.type=='txt'">{{::Digest.val}}</div> 
    </div>

然后css上定义了loading图片,加载中会先看到的是在加载过程的图片

img[data-ui-lazyload]{ background:url(../img/icons/loading.gif) no-repeat center center;} 

一开始也不知道是什么情况,将循环图片的html代码一层一层往上放排查,经过反复查找发现是父父父级class设定的定位:position:absolute;导致了div脱离文档流导致的。而插件又是根据windows监听滚动事件的。这里的解决办法就是把定位改为relative就可以了。

然后是加载过程发现发现不知道为啥loading图片都没有出现。出现的一直是onerror定义的默认图片,一直以为是插件的问题,后来换了个插件使用。发现根源是在src=""这个属性导致的,渲染的过程认为查找不到图片就直接显示默认的图片了。这里只要删掉src属性即可解决。

然后又发现当我某几张图片定位到可是区域后,f5刷新浏览器,发现一直在加载中,图片无法显示出来,只有当我滚动下鼠标,图片才会加载出来。这个实在不清楚什么原因,我只能选择另外一个插件使用。

最终的解决方案是使用的这个插件【http://bennadel.github.io/JavaScript-Demos/demos/lazy-src-angularjs/】,发现上面的第三点问题在这里并不存在,果断使用这个插件,唯一不足是这个需要依赖于jquery库。这个插件依然是监听windows滚动事件,无法自定义监听滚动事件,因此需要注意的是以后的项目上需要懒加载的地方他的父辈元素一定不能是absolute定位。

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

Javascript 相关文章推荐
Js 弹出框口并返回值的两种常用方法
Dec 30 Javascript
js输入框邮箱自动提示功能代码实现
Dec 10 Javascript
关于页面嵌入swf覆盖div层的问题的解决方法
Feb 11 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
Aug 24 Javascript
基于jQuery的select下拉框选择触发事件实例分析
Nov 18 Javascript
js实现PC端和移动端刮卡效果
Mar 27 Javascript
Vue计算属性的学习笔记
Mar 22 Javascript
Ajax验证用户名或昵称是否已被注册
Apr 05 Javascript
深入理解Vue 的钩子函数
Sep 05 Javascript
Angular6 正则表达式允许输入部分中文字符
Sep 10 Javascript
Vue Extends 扩展选项用法完整实例
Sep 17 Javascript
vue prop传值类型检验方式
Jul 30 Javascript
微信小程序日历组件calendar详解及实例
Jun 08 #Javascript
php简单数据库操作类的封装
Jun 08 #Javascript
ReactJs设置css样式的方法
Jun 08 #Javascript
requirejs按需加载angularjs文件实例
Jun 08 #Javascript
简单谈谈关于 npm 5.0 的新坑
Jun 08 #Javascript
微信小程序开发之toast提示插件使用示例
Jun 08 #Javascript
jquery实现放大镜简洁代码(推荐)
Jun 08 #jQuery
You might like
简单的方法让你的后台登录更加安全(php中加session验证)
2012/08/22 PHP
PHP设计模式之责任链模式的深入解析
2013/06/13 PHP
利用php下载xls文件(自己动手写的)
2014/04/18 PHP
PHP统计目录中文件以及目录中目录大小的方法
2016/01/09 PHP
简单谈谈PHP中的include、include_once、require以及require_once语句
2016/04/23 PHP
CL vs ForZe BO5 第二场 2.13
2021/03/10 DOTA
JQuery实现的在新窗口打开链接的方法小结
2010/04/22 Javascript
学习从实践开始之jQuery插件开发 菜单插件开发
2012/05/03 Javascript
javascript 在firebug调试时用console.log的方法
2012/05/10 Javascript
jQuery easyui datagrid动态查询数据实例讲解
2013/02/26 Javascript
Jquery 复选框取值兼容FF和IE8(测试有效)
2013/10/29 Javascript
JavaScript 对象深入学习总结(经典)
2015/09/29 Javascript
bootstrap Validator 模态框、jsp、表单验证 Ajax提交功能
2017/02/17 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
2018/04/20 Javascript
JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】
2018/12/19 Javascript
jQuery实现图片下载代码
2019/07/18 jQuery
ant-design-vue 实现表格内部字段验证功能
2019/12/16 Javascript
关于vue 结合原生js 解决echarts resize问题
2020/07/26 Javascript
[00:35]DOTA2上海特级锦标赛 EG战队宣传片
2016/03/04 DOTA
Python中获取对象信息的方法
2015/04/27 Python
python2.7实现复制大量文件及文件夹资料
2019/08/31 Python
TensorFlow tf.nn.conv2d实现卷积的方式
2020/01/03 Python
python多进程下的生产者和消费者模型
2020/05/07 Python
Python制作数据预测集成工具(值得收藏)
2020/08/21 Python
实现strstr功能,即在父串中寻找子串首次出现的位置
2016/08/05 面试题
土木工程实习生自我鉴定
2013/09/19 职场文书
体育教育专业自荐信范文
2013/12/20 职场文书
初中生自我评价
2014/02/01 职场文书
研究生简历自我评价范文
2014/09/13 职场文书
2014年教育实习工作总结
2014/11/22 职场文书
2015元旦联欢晚会结束语
2014/12/14 职场文书
天坛导游词
2015/02/02 职场文书
2015年仓库工作总结
2015/04/09 职场文书
廉政承诺书2015
2015/04/28 职场文书
MySQL 自定义变量的概念及特点
2021/05/13 MySQL