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 相关文章推荐
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
Aug 28 Javascript
JS 遮照层实现代码
Mar 31 Javascript
鼠标滑上去后图片放大浮出效果的js代码
May 28 Javascript
js时间日期和毫秒的相互转换
Feb 22 Javascript
window.open()实现post传递参数
Mar 12 Javascript
JavaScript检测鼠标移动方向的方法
May 22 Javascript
javascript对象的创建和访问
Mar 08 Javascript
JavaScript必知必会(二) null 和undefined
Jun 08 Javascript
js中的eval()函数把含有转义字符的字符串转换成Object对象的方法
Dec 02 Javascript
javascript实现简易计算器
Feb 01 Javascript
解决layui中的form表单与button的点击事件冲突问题
Aug 15 Javascript
详解ES6中的 Set Map 数据结构学习总结
Nov 06 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学习笔记 类的声明与对象实例化
2011/06/13 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
2015/12/20 PHP
js计算页面刷新的次数
2009/07/20 Javascript
基于jQuery的仿flash的广告轮播
2010/11/05 Javascript
判断滚动条到底部的JS代码
2013/11/04 Javascript
js获取判断上传文件后缀名的示例代码
2014/02/19 Javascript
js控制鼠标事件移动及移出效果显示
2014/10/19 Javascript
JavaScript中的对象序列化介绍
2014/12/30 Javascript
jquery实现左右滑动菜单效果代码
2015/08/27 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
2015/11/17 Javascript
jQuery实现简单的文件上传进度条效果
2020/03/26 Javascript
JavaScript之cookie技术详解
2016/11/18 Javascript
javascript验证香港身份证的格式或真实性
2017/02/07 Javascript
Angular2库初探
2017/03/01 Javascript
canvas压缩图片转换成base64格式输出文件流
2017/03/09 Javascript
vue+vue-router转场动画的实例代码
2018/09/01 Javascript
深入浅析javascript函数中with
2018/10/28 Javascript
vue-router 起步步骤详解
2019/03/26 Javascript
nodejs中实现修改用户路由功能
2019/05/24 NodeJs
微信小程序wxml列表渲染原理解析
2019/11/27 Javascript
Python的Flask框架中集成CKeditor富文本编辑器的教程
2016/06/13 Python
Django如何自定义分页
2018/09/25 Python
python实现维吉尼亚加密法
2019/03/20 Python
PyTorch实现AlexNet示例
2020/01/14 Python
Django多层嵌套ManyToMany字段ORM操作详解
2020/05/19 Python
Michael Kors美国官网:美式奢侈生活风格的代表
2016/11/25 全球购物
法学研究生自我鉴定范文
2013/12/04 职场文书
采购员的工作职责
2013/12/26 职场文书
采购人员的个人自我评价
2014/01/16 职场文书
计算机毕业大学生求职信
2014/06/26 职场文书
承兑汇票转让证明怎么写?
2014/11/30 职场文书
致地震灾区的慰问信
2015/03/23 职场文书
2019通用版新员工入职培训方案!
2019/07/11 职场文书
六年级情感作文之500字
2019/10/23 职场文书
python实战之用emoji表情生成文字
2021/05/08 Python
【海涛dota解说】DCG联赛第一周 LGD VS DH
2022/04/01 DOTA