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 相关文章推荐
javascript 闭包疑问
Dec 30 Javascript
jQuery选择器中含有空格的使用示例及注意事项
Aug 25 Javascript
用javascript关闭本窗口技巧小结
Sep 05 Javascript
微信小程序 详解Page中data数据操作和函数调用
Jan 12 Javascript
jQuery通过改变input的type属性实现密码显示隐藏切换功能
Feb 08 Javascript
jQuery表格(Table)基本操作实例分析
Mar 10 Javascript
详解微信小程序 template添加绑定事件
Jun 23 Javascript
JS操作时间 - UNIX时间戳的简单介绍(必看篇)
Aug 16 Javascript
微信小程序使用navigateTo数据传递的实例
Sep 26 Javascript
微信小程序实现列表下拉刷新上拉加载
Jul 29 Javascript
Javascript中prototype与__proto__的关系详解
Mar 11 Javascript
vue-resource post数据时碰到Django csrf问题的解决
Mar 13 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
php中curl和file_get_content的区别
2014/05/10 PHP
PHP面向对象程序设计类的定义与用法简单示例
2016/12/27 PHP
JS获取当前日期时间并定时刷新示例
2021/03/04 Javascript
jQuery内部原理和实现方式浅析
2015/02/03 Javascript
JS获取图片高度宽度的方法分享
2015/04/17 Javascript
js实现简洁的TAB滑动门效果代码
2015/09/06 Javascript
jQueryUI DatePicker 添加时分秒
2016/06/04 Javascript
bootstrap制作jsp页面(根据值让table显示选中)
2017/01/05 Javascript
详解基于Angular4+ server render(服务端渲染)开发教程
2017/08/28 Javascript
vue-cli 3.x配置跨域代理的实现方法
2019/04/12 Javascript
在微信小程序中使用图表的方法示例
2019/04/25 Javascript
eslint 的三大通用规则详解
2019/05/16 Javascript
深入学习JavaScript中的bom
2019/05/27 Javascript
javascript中layim之查找好友查找群组
2021/02/06 Javascript
Python selenium 父子、兄弟、相邻节点定位方式详解
2016/09/15 Python
django如何连接已存在数据的数据库
2018/08/14 Python
python实现将汉字保存成文本的方法
2018/11/16 Python
Python实现查找数组中任意第k大的数字算法示例
2019/01/23 Python
Pytorch之Variable的用法
2019/12/31 Python
python with (as)语句实例详解
2020/02/04 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
python 获取谷歌浏览器保存的密码
2021/01/06 Python
匡威荷兰官方网站:Converse荷兰
2018/10/24 全球购物
汇智创新科技发展有限公司
2015/12/06 面试题
大学社团活动策划书
2014/01/26 职场文书
项目经理聘任书
2014/03/29 职场文书
品德评语大全
2014/05/05 职场文书
希特勒的演讲稿
2014/05/23 职场文书
个人专业技术总结
2015/03/05 职场文书
庆七一主持词
2015/06/29 职场文书
小学生教师节广播稿
2015/08/19 职场文书
CSS filter 有什么神奇用途
2021/05/25 HTML / CSS
使用Django实现商城验证码模块的方法
2021/06/01 Python
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android
如何打开Win11系统注册表编辑器?Win11注册表编辑器打开修复方法
2022/04/05 数码科技
nginx 配置缓存
2022/05/11 Servers