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 相关文章推荐
让JavaScript 轻松支持函数重载 (Part 1 - 设计)
Aug 04 Javascript
javascript对talbe进行动态添加、删除、验证实现代码
Mar 29 Javascript
Javascript 面向对象(三)接口代码
May 23 Javascript
jQuery学习笔记之2个小技巧
Jan 19 Javascript
Java Mybatis框架入门基础教程
Sep 21 Javascript
Bootstrap入门书籍之(三)栅格系统
Feb 17 Javascript
jQuery图片左右滚动代码 有左右按钮实例
Jun 20 Javascript
jQuery基于ajax操作json数据简单示例
Jan 05 Javascript
JS使用new操作符创建对象的方法分析
May 30 Javascript
微信小程序实现折线图的示例代码
Jun 07 Javascript
详解 javascript对象创建模式
Oct 30 Javascript
在vue项目中promise解决回调地狱和并发请求的问题
Nov 09 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
Javascript this关键字使用分析
2008/10/21 Javascript
js中将字符串转换成json的三种方式
2011/01/12 Javascript
javascript常见用法总结
2014/05/22 Javascript
js实现每日自动换一张图片的方法
2015/05/04 Javascript
实例讲解JavaScript中instanceof运算符的用法
2016/06/08 Javascript
基于ajax与msmq技术的消息推送功能实现代码
2016/12/26 Javascript
JAVA中截取字符串substring用法详解
2017/04/14 Javascript
angular json对象push到数组中的方法
2018/02/27 Javascript
JS使用数组实现的队列功能示例
2019/03/04 Javascript
Nuxt项目支持eslint+pritter+typescript的实现
2019/05/20 Javascript
对layui中的onevent 和event的使用详解
2019/09/06 Javascript
在Vue中使用Viser说明(基于AntV-G2可视化引擎)
2020/10/28 Javascript
[01:56]《DOTA2》中文配音CG
2013/04/22 DOTA
[04:01]2014DOTA2国际邀请赛 TITAN告别Ohaiyo期望明年再战
2014/07/15 DOTA
[00:10]DOTA2全国高校联赛 以DOTA2会友
2018/05/30 DOTA
解决Pycharm无法import自己安装的第三方module问题
2018/05/18 Python
基于python实现聊天室程序
2018/07/27 Python
python pandas库的安装和创建
2019/01/10 Python
python爬虫开发之selenium模块详细使用方法与实例全解
2020/03/09 Python
Python坐标轴操作及设置代码实例
2020/06/04 Python
Python3读取和写入excel表格数据的示例代码
2020/06/09 Python
CSS3的RGBA中关于整数和百分比值的转换
2015/08/04 HTML / CSS
纪伊国屋泰国网上书店:Kinokuniya泰国
2017/12/24 全球购物
文秘自荐信
2013/10/20 职场文书
挂职自我鉴定
2014/02/26 职场文书
优秀大学生自荐信
2014/06/09 职场文书
2014最新实习证明模板
2014/10/02 职场文书
党干部专题民主生活会对照检查材料思想汇报
2014/10/06 职场文书
自我检讨书范文
2015/01/28 职场文书
大学生心理健康活动总结
2015/05/08 职场文书
教育读书笔记
2015/07/02 职场文书
2015质检员个人年终工作总结
2015/10/23 职场文书
2019学生会干事辞职信
2019/06/27 职场文书
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技
VUE递归树形实现多级列表
2022/07/15 Vue.js
HTML 里 img 元素的 src 和 srcset 属性的区别详解
2023/05/21 HTML / CSS