javascript填充默认头像方法


Posted in Javascript onFebruary 22, 2018

在我的不少项目中,都有缺省头像的问题。为了保持个性和方便辨认,会给没有头像的用户填充带名字的头像。

代码分享:https://github.com/joaner/namedavatar

javascript填充默认头像方法

调用简单

如果上传头像不存在,直接会在 <img> 标签上填充默认头像,用户名从alt获取:

<img alt="李连杰" width="32" style="border-radius: 100%">
<img src="./invalid.jpg" alt="Tom Hanks" width="40">

<script>
requirejs('namedavatar', function(namedavatar){
 namedavatar.config({
  nameType: 'lastName',
 })

 namedavatar.setImgs(document.querySelectorAll('img[alt]'), 'alt')
})
</script>

如果<img src="./invalid.jpg">资源无效,namedavatar.setImgs()就会填充alt里的用户名,src变成这样

<img id="avatar1" src="data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32"><rect fill="#9C27B0" x="0" y="0" width="100%" height="100%"></rect><text fill="#FFF" x="50%" y="50%" text-anchor="middle" alignment-baseline="central" font-size="16" font-family="Verdana, Geneva, sans-serif">Hanks</text></svg>">

相比其它类似项目

  1. 首先对中文姓名的支持更好
  2. 直接在<img>标签上填充data URI,绿色无添加,应用成本更低
  3. 基于<svg>,没有用<canvas>渲染,性能也会好一点
  4. 支持的配置项更多,比如可以定义显示哪部分,或是随机背景颜色

也支持Vue.js的 directive 指令方式

import { directive } from 'namedavatar/vue'
// register as directive
Vue.directive('avatar', directive);
// in vue template
<template>
<img v-avatar="'Tom Hanks'" width="36"/>
</template>

以上就是本次整理的全部内容,感谢大家对三水点靠木的支持。

Javascript 相关文章推荐
使用户点击后退按钮使效三行代码
Jul 07 Javascript
js 事件小结 表格区别
Aug 13 Javascript
date.parse在IE和FF中的区别
Jul 29 Javascript
jQuery使用元素属性attr赋值详解
Feb 27 Javascript
JS实现下拉菜单赋值到文本框的方法
Aug 18 Javascript
深入学习Bootstrap表单
Dec 13 Javascript
JavaScript 事件对内存和性能的影响
Jan 22 Javascript
快速使用node.js进行web开发详解
Apr 26 Javascript
Angular模版驱动表单的使用总结
May 05 Javascript
vue-resource请求实现http登录拦截或者路由拦截的方法
Jul 11 Javascript
浅谈Javascript中的对象和继承
Apr 19 Javascript
vue router 跳转时打开新页面的示例方法
Jul 28 Javascript
一次记住JavaScript的6个正则表达式方法
Feb 22 #Javascript
利用CDN加速react webpack打包后的文件详解
Feb 22 #Javascript
node内置调试方法总结
Feb 22 #Javascript
详解vue移动端日期选择组件
Feb 22 #Javascript
webpack 单独打包指定JS文件的方法
Feb 22 #Javascript
webpack中使用iconfont字体图标的方法
Feb 22 #Javascript
微信小程序之圆形进度条实现思路
Feb 22 #Javascript
You might like
Zend 输出产生XML解析错误
2009/03/03 PHP
PHP实现生成唯一编号(36进制的不重复编号)
2014/07/01 PHP
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
2015/03/19 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
php5.6.x到php7.0.x特性小结
2019/08/17 PHP
详细讲解JS节点知识
2010/01/31 Javascript
JavaScript中的console.log()函数详细介绍
2014/12/29 Javascript
JavaScript中操作字符串小结
2015/05/04 Javascript
jquery实现删除一个元素后面的所有元素功能
2015/12/21 Javascript
利用JS做网页特效_大图轮播(实例讲解)
2017/08/09 Javascript
第一个Vue插件从封装到发布
2017/11/22 Javascript
微信小程序入口场景的问题集合与相关解决方法
2019/06/26 Javascript
小程序实现搜索框功能
2020/03/26 Javascript
Javascript查看大图功能代码实现
2020/05/07 Javascript
一文读懂vue动态属性数据绑定(v-bind指令)
2020/07/20 Javascript
深入了解JavaScript词法作用域
2020/07/29 Javascript
python 从远程服务器下载日志文件的程序
2013/02/10 Python
python optparse模块使用实例
2015/04/09 Python
python实现合并两个数组的方法
2015/05/16 Python
python PIL模块与随机生成中文验证码
2016/02/27 Python
python hook监听事件详解
2018/10/25 Python
对Python信号处理模块signal详解
2019/01/09 Python
Python如何实现强制数据类型转换
2019/11/22 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
2020/05/17 Python
python 线程的五个状态
2020/09/22 Python
马来西亚网上美容店:Hermo.my
2017/11/25 全球购物
俄罗斯名牌服装网上商店:UNIQUE FABRIC
2019/07/25 全球购物
优秀医生事迹材料
2014/02/12 职场文书
手工社团活动方案
2014/02/17 职场文书
教师节活动总结
2014/08/29 职场文书
新教师培训心得体会
2014/09/02 职场文书
基层党员群众路线整改措施及努力方向
2014/10/28 职场文书
2019自荐信该如何写呢?
2019/07/05 职场文书
python第三方网页解析器 lxml 扩展库与 xpath 的使用方法
2021/04/06 Python
如何有效防止sql注入的方法
2021/05/25 SQL Server
Jedis操作Redis实现模拟验证码发送功能
2021/09/25 Redis