推荐一个 angular 图像加载插件
推荐一个简单的 Angular 图片加载插件:vgSrc,插件根据图片资源的不同加载状态,显示不同图片,亲测兼容IE-8。
使用
- 推荐使用 bower 加载:
bower install vgSrc --save
并引入:
<script src="/bower_components/vgSrc/dist/vgSrc.min.js"></script>
- 也可下载源码,在页面引入:
<script src="/libs/vgSrc/dist/vgSrc.min.js"></script>}
example
- 简单实例
<img vg-src="ctrl.currentImg" alt="">
- 添加样式
<img vg-src="ctrl.currentImg" loading-cls="loading" error-cls="error" empty-cls="empty" loaded-cls="load" alt="">
- 监听事件
<img vg-src="ctrl.currentImg" loading-cls="loading" error-cls="error" empty-cls="empty" loaded-cls="load" alt="">
更多实例,请查阅 sample/index.html 文件
API
vgSrcConfigProvider
配置接口:
vgSrcConfigProvider.$set(config)
example:
ng.module('vgSrc.sample', ['vgSrc']).config([
'vgSrcConfigProvider',
function(vgSrcConfigProvider) {
vgSrcConfigProvider.$set({
debug: false,
error: 'http://ico.ooopic.com/iconset01/status-icons/gif/99589.gif',
onBegin: function($e) {
// console.log('start load:' + $e.src);
},
onError: function($e) {
// console.log('failure load:' + $e.src);
},
onLoad: function($e) {
// console.log('complete load:' + $e.src);
}
});
}
]);
vgSrc (directive)
vgSrc 指令用法与 ngSrc 指令类型。指令支持 angular 表达式,如.
<img vg-src="ctrl.currentImg" alt="">
<img vg-src="'/img/someImage.png'" alt="">
配置项
替换图片
vgSrc 支持 loading、error、empty 状态下的图片替换:
- vgSrc 指令求值结果为空时(null、undefined、空字符串),将显示 empty 值指定的图片
- 开始加载时,将显示 loading 值指定的图片
- 加载出错时,将显示 error 值指定的图片
- 加载成功后,正常显示图片
事件
vgSrc 支持 onBegin、onError、onLoad 事件,可通过 vgSrcConfigProvider 、 vgSrc 两种方式注册不同类型的事件处理器:
- 通过 vgSrcConfigProvider 方式注册的监听器将做为默认的事件监听器,事件参数为:
$e{src:''}
,用法如:
onBegin:function($e){
console.log($e.src);
}
- 通过 vgSrc 方式注册的监听器将覆盖默认的事件监听器,事件参数为:
$e{src:''}
,用法如:
<img vg-src="ctrl.currentImg" on-begin="ctrl.log(src)" alt="">
样式class
vgSrc 支持 loadingCls、loadedCls、errorCls、emptyCls 样式,可通过 vgSrcConfigProvider 、 vgSrc 两种方式注册 class 值:
- 通过 vgSrcConfigProvider 方式注册的 class 将做为默认的 class ,用法如:
errorCls:'errorClass'
- 通过 vgSrc 方式注册的 class 将做为此image特定的 class,用法如:
<img vg-src="ctrl.currentImg" error-cls="errorClass" alt="">
** 注意,class 属性不支持angular表达式 —— 你只能传递简单的字符串 **
配置项汇总
{
// 启动调试模式
debug: false,
// 图片加载中的替换显示图片
loading: '/loading.jpg',
// 图片加载中的样式 class
loadingCls: '',
// 图片加载完成的样式 class
loadedCls: '',
// 图片加载失败的替换显示图片
error: '/error.jpg',
// 图片加载失败的样式 class
errorCls: '',
// 图片值为空时的替换显示图片
empty: '',
// 图片值为空时的样式 class
emptyCls: '',
// 资源开始加载事件
'onBegin': ng.noop,
// 资源加载出错事件
'onError': ng.noop,
// 资源加载完毕事件
'onLoad': ng.noop
}
兼容性
目前兼容主流浏览器及ie8
推荐一个 angular 图像加载插件的更多相关文章
- Vue实现一个图片懒加载插件(转载)
Vue是可以自定义指令的,最近学习过程中遇见了一个需要图片懒加载的功能,最后参考了别人的代码和思路自己重新写了一遍.以下将详细介绍如何实现自定义指令v-lazyload. 先看如何使用这个指令: &l ...
- [jQuery插件]手写一个图片懒加载实现
教你做图片懒加载插件 那一年 那一年,我还年轻 刚接手一个ASP.NET MVC 的 web 项目, (C#/jQuery/Bootstrap) 并没有做 web 的经验,没有预留学习时间, (作为项 ...
- jQuery延迟加载(懒加载)插件 – jquery.lazyload.js-Web前端(W3Cways.com) - Web前端学习之路
Lazy Load 是一个用 JavaScript 编写的 jQuery 插件. 它可以延迟加载长页面中的图片. 在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预 ...
- jQuery图片懒加载插件jquery.lazyload.js使用实例注意事项说明
jQuery图片懒加载插件jquery.lazyload.js使用实例注意事项说明 jquery.lazyload.js是一个用JavaScript编写的jQuery插件.它可以延迟加载长页面中的图片 ...
- jQuery懒加载插件jquery.lazyload.js使用说明实例
jQuery懒加载插件jquery.lazyload.js使用说明实例很多网站都会用到‘图片懒加载’这种方式对网站进行优化,即延迟加载图片或符合某些条件才开始加载图片.懒加载原理:浏览器会自动对页面中 ...
- 从零开始实现ASP.NET Core MVC的插件式开发(六) - 如何加载插件引用
标题:从零开始实现ASP.NET Core MVC的插件式开发(六) - 如何加载插件引用. 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun/p/1171 ...
- 图片懒加载插件lazyload.js详解
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 【SpringBoot 基础系列】实现一个自定义配置加载器(应用篇)
[SpringBoot 基础系列]实现一个自定义配置加载器(应用篇) Spring 中提供了@Value注解,用来绑定配置,可以实现从配置文件中,读取对应的配置并赋值给成员变量:某些时候,我们的配置可 ...
- 原生JS下拉加载插件分享。
无聊写了一个JS下拉加载插件,有需要的可以下载. // 使用 // new ManDownLoad("#ul","json/load.json",functio ...
随机推荐
- 烂泥:LVM学习之逻辑卷、卷组及物理卷删除
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 上篇文章,我们介绍了有关LVM的逻辑卷及卷组的空间缩小.这次我们来介绍下如何删除一个逻辑卷及卷组. 删除逻辑卷需要以下几个步骤: 1. 卸载已经挂载的逻 ...
- 烂泥:ubuntu中使用virt-manager图形化新建虚拟机
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 上一篇文章介绍了,如何在ubuntu下安装KVM的虚拟机管理器virt-manager,这篇文章我们来介绍,如何在图形界面下使用virt-manager ...
- UWP 矢量字体图标(iconfont)使用
本文使用 阿里巴巴开源字体: 选择矢量字体图标: 查看或编辑 Unicode编码 或字体名称 下载到本地,添加到uwp项目 代码中写法 Text:Unicode编码 FontFamily:文件路径#字 ...
- Swift 语法笔记01
Swift 好多新奇的地方啊...妈的 var display: int { get() set() } Tuple: let x: (d:Double, e:String, f:Int) = (3. ...
- 1.NopCommerce下载与安装
NoCommerce是基于微软ASP.NET MVC + EntityFramework 技术开发的一套开源电子商城系统,其架构与设计非常精妙被誉为.NET商城的经典之作. 作为一个.NET程序爱好者 ...
- Web性能优化之图片延迟加载
来源:微信公众号CodeL 对于一些图片多,页面长的网页来说,如果每次打开页面加载全部的网页内容,页面加载速度势必会受到影响,如果每次打开网页只将网页可视区域的内容加载给用户 ,将大大提高网页浏览速度 ...
- UESTC 885 方老师买表 --状压DP
将方格的摆放分成两种: 1.水平摆放:此时所占的两个格子都记为1. 2.竖直摆放:此时底下那个格子记为1,上面那个记为0. 这样的话,每行都会有一个状态表示. 定义:dp[i][s]表示考虑已经填到第 ...
- UESTC 898 方老师和缘分 --二分图匹配+强连通分量
这题原来以为是某种匹配问题,后来好像说是强连通的问题. 做法:建图,每个方老师和它想要的缘分之间连一条有向边,然后,在给出的初始匹配中反向建边,即如果第i个方老师现在找到的是缘分u,则建边u-> ...
- ZOJ 3659 & HDU 4424 Conquer a New Region (并查集)
这题要用到一点贪心的思想,因为一个点到另一个点的运载能力决定于其间的边的最小权值,所以先把线段按权值从大到小排个序,每次加的边都比以前小,然后合并集合时,比较 x = findset(a) 做根或 y ...
- RabbitMQ 一二事(3) - 订阅模式(微信公众号模式)的应用
之前讲的消费者互相可以把队列中的消息全部读取,但是不是读完整的所有信息 那么采用订阅模式就行,这就是微信公众号的模式, 比如10个人订阅了我的公众号"BeJavaGod",当我发送 ...