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压缩工具下载集合
Mar 06 Javascript
JS按字节截取字符长度实例
Nov 20 Javascript
浅谈EasyUI中Treegrid节点的删除
Mar 01 Javascript
jQuery设置和移除文本框默认值的方法
Mar 09 Javascript
javascript字符串替换函数如何一次性全部替换掉
Oct 30 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
Feb 02 Javascript
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
Jun 22 Javascript
Vue.js实战之利用vue-router实现跳转页面
Apr 01 Javascript
Vue SPA单页应用首屏优化实践
Jun 28 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
Apr 29 Javascript
Vue 权限控制的两种方法(路由验证)
Aug 16 Javascript
微信小程序如何实现radio单选框单击打勾和取消
Jan 21 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 中的批处理的实现
2007/06/14 PHP
php中Socket创建与监听实现方法
2015/01/05 PHP
php使用wordwrap格式化文本段落的方法
2015/03/17 PHP
php简单计算年龄的方法(周岁与虚岁)
2016/12/06 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
2020/04/20 PHP
jQuery基本过滤选择器使用介绍
2013/04/18 Javascript
jquery批量设置属性readonly和disabled的方法
2014/01/24 Javascript
thinkphp 表名 大小写 窍门
2015/02/01 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
2015/03/02 Javascript
jQuery实现简单的间隔向上滚动效果
2015/03/09 Javascript
js淡入淡出焦点图幻灯片效果代码分享
2015/09/08 Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
2016/07/11 Javascript
AngularJS实现页面定时刷新
2017/03/14 Javascript
javascript中神奇的 Date对象小结
2017/10/12 Javascript
jQuery实现新闻播报滚动及淡入淡出效果示例
2018/03/23 jQuery
element-ui 表格数据时间格式化的方法
2018/08/24 Javascript
解决vue-cli webpack打包开启Gzip 报错问题
2019/07/24 Javascript
JavaScript获取某一天所在的星期
2019/09/05 Javascript
[01:08:57]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第二场
2014/05/24 DOTA
python统计一个文本中重复行数的方法
2014/11/19 Python
解读Python中degrees()方法的使用
2015/05/18 Python
浅谈Python 对象内存占用
2016/07/15 Python
关于Python 3中print函数的换行详解
2017/08/08 Python
python 杀死自身进程的实现方法
2019/07/01 Python
python中xlutils库用法浅析
2020/12/29 Python
基于HTML5新特性Mutation Observer实现编辑器的撤销和回退操作
2016/01/11 HTML / CSS
HTML5本地存储之Web Storage详解
2016/07/04 HTML / CSS
英国工艺品购物网站:Minerva Crafts
2018/01/29 全球购物
电子商务网站的创业计划书
2014/01/05 职场文书
民事诉讼授权委托书范文
2014/08/02 职场文书
运动会加油稿20字
2014/11/15 职场文书
项目建议书
2015/02/04 职场文书
大学考试作弊检讨书
2015/05/06 职场文书
奖学金主要事迹范文
2015/11/04 职场文书
Html5获取用户当前位置的几种方式
2022/01/18 HTML / CSS
Redis高可用集群redis-cluster详解
2022/03/20 Redis