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 相关文章推荐
AngularJS HTML编译器介绍
Dec 06 Javascript
JS如何生成一个不重复的ID的函数
Dec 25 Javascript
Jquery实现跨域异步上传文件总结
Feb 03 Javascript
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
May 05 jQuery
vue.js动态数据绑定学习笔记
May 19 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
Mar 01 Javascript
jQuery each和js forEach用法比较
Feb 27 jQuery
layui-select动态选中值的例子
Sep 23 Javascript
vue 解决data中定义图片相对路径页面不显示的问题
Aug 13 Javascript
js实现前端界面导航栏下拉列表
Aug 27 Javascript
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
Nov 03 Javascript
JavaScript实现音乐导航效果
Nov 19 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 Global定义全局变量使用说明
2013/08/15 PHP
JS实现程序暂停与继续功能代码解读
2013/10/10 Javascript
jQuery读取和设定KindEditor值的方法
2013/11/22 Javascript
from表单多个按钮提交用onclick跳转不同action
2014/04/24 Javascript
使用GruntJS构建Web程序之构建篇
2014/06/04 Javascript
javascript删除数组重复元素的方法汇总
2015/06/24 Javascript
jQuery实现的自动加载页面功能示例
2016/09/04 Javascript
BootStrap轻松实现微信页面开发代码分享
2016/10/21 Javascript
JavaScript纯色二维码变成彩色二维码
2020/07/23 Javascript
详解webpack3如何正确引用并使用jQuery库
2017/08/26 jQuery
jQuery实现的淡入淡出与滑入滑出效果示例
2018/04/18 jQuery
iView框架问题整理小结
2018/10/16 Javascript
浅析JavaScript 函数防抖和节流
2020/07/13 Javascript
[07:01]DOTA2-DPC中国联赛正赛 Aster vs Magma 3月5日 赛后选手采访
2021/03/11 DOTA
Python正则表达式介绍
2012/08/06 Python
Python中有趣在__call__函数
2015/06/21 Python
Python中set与frozenset方法和区别详解
2016/05/23 Python
python实现名片管理系统项目
2019/04/26 Python
python搜索包的路径的实现方法
2019/07/19 Python
django foreignkey(外键)的实现
2019/07/29 Python
python异常处理、自定义异常、断言原理与用法分析
2020/03/23 Python
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
西班牙在线药店:DosFarma
2020/03/28 全球购物
Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
2015/08/04 面试题
对于没有初始化的变量的初始值可以作怎样的假定
2014/10/12 面试题
海量信息软件测试笔试题
2015/08/08 面试题
预备党员思想汇报
2014/01/08 职场文书
咖啡书吧创业计划书
2014/01/13 职场文书
2014社区三八妇女节活动总结
2014/03/01 职场文书
小学优秀教育工作者事迹材料
2014/05/09 职场文书
五好关工委申报材料
2014/05/31 职场文书
市级三好学生事迹材料
2014/08/27 职场文书
大学新生军训自我鉴定范文
2014/09/13 职场文书
幼儿园小班见习报告
2014/10/31 职场文书
边城读书笔记
2015/06/29 职场文书
2019年最新证婚词精选集!
2019/06/28 职场文书