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 相关文章推荐
phpwind放自动注册方法
Dec 02 Javascript
Javascript在IE下设置innerHTML时出现未知的运行时错误的解决方法
Jan 12 Javascript
jQuery 无刷新分页实例代码
Nov 12 Javascript
前台js对象在后台转化java对象的问题探讨
Dec 20 Javascript
jQuery学习笔记之 Ajax操作篇(三) - 过程处理
Jun 23 Javascript
Javascript 是你的高阶函数(高级应用)
Jun 15 Javascript
详解javascript函数的参数
Nov 10 Javascript
jQuery中show与hide方法用法示例
Sep 16 Javascript
jQuery EasyUI 获取tabs的实例解析
Dec 06 Javascript
javascript DOM的详解及实例代码
Mar 06 Javascript
ES6之Proxy的get方法详解
Oct 11 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
Sep 04 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
ThinkPHP之M方法实例详解
2014/06/20 PHP
PHP读取CURL模拟登录时生成Cookie文件的方法
2014/11/04 PHP
PHP多维数组遍历方法(2种实现方法)
2015/12/10 PHP
php+ajax+json 详解及实例代码
2016/12/12 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
2019/09/30 PHP
关于跨站脚本攻击问题
2011/12/22 Javascript
JavaScript函数模式详解
2014/11/07 Javascript
利用jQuery设计一个简单的web音乐播放器的实例分享
2016/03/08 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
jQuery给div,Span, a ,button, radio 赋值与取值
2016/06/24 Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
2016/12/27 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
2017/08/12 Javascript
详解如何实现一个简单的Node.js脚手架
2017/12/04 Javascript
详解微信小程序input标签正则初体验
2018/08/18 Javascript
vue实现微信二次分享以及自定义分享的示例
2019/03/20 Javascript
在Vue 中获取下拉框的文本及选项值操作
2020/08/13 Javascript
JavaScript中的Proxy对象
2020/11/27 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
Python实现简单截取中文字符串的方法
2015/06/15 Python
python变量不能以数字打头详解
2016/07/06 Python
用十张图详解TensorFlow数据读取机制(附代码)
2018/02/06 Python
Python贪心算法实例小结
2018/04/22 Python
python3连接MySQL数据库实例详解
2018/05/24 Python
django+xadmin+djcelery实现后台管理定时任务
2018/08/14 Python
python实现随机漫步方法和原理
2019/06/10 Python
Jupyter Notebook打开任意文件夹操作
2020/04/14 Python
Python 调用C++封装的进一步探索交流
2021/03/04 Python
印度网上购物首选目的地:Flipkart
2016/08/01 全球购物
野兽派官方旗舰店:THE BEAST 野兽派
2016/08/05 全球购物
Smilodox官方运动服装店:从运动服到健身配件
2020/08/27 全球购物
自荐信要包含哪些内容
2013/11/06 职场文书
小学二年级数学教学计划
2015/01/20 职场文书
2015年党员公开承诺书范文
2015/01/22 职场文书
2015年大学生村官工作总结
2015/04/21 职场文书
毕业论文答辩开场白和答辩技巧
2015/05/27 职场文书
回复函范文
2015/07/14 职场文书