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 相关文章推荐
添加到收藏夹代码(兼容几乎所有的浏览器)
Jan 09 Javascript
JQUBAR1.1 jQuery 柱状图插件发布
Nov 28 Javascript
简单谈谈javascript中this的隐式绑定
Feb 22 Javascript
JavaScript函数内部属性和函数方法实例详解
Mar 17 Javascript
Angularjs在360兼容模式下取数据缓存问题的解决办法
Jun 22 Javascript
jQuery动画_动力节点节点Java学院整理
Jul 04 jQuery
JS仿QQ好友列表展开、收缩功能(第二篇)
Jul 07 Javascript
详解前端路由实现与react-router使用姿势
Aug 07 Javascript
详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
Aug 30 Javascript
input 标签实现输入框带提示文字效果(两种方法)
Oct 09 Javascript
angular基于ng-alain定义自己的select组件示例
Feb 23 Javascript
vue3中轻松实现switch功能组件的全过程
Jan 07 Vue.js
一次记住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
joomla组件开发入门教程
2016/05/04 PHP
JavaScript window.setTimeout() 的详细用法
2009/11/04 Javascript
防止xss和sql注入:JS特殊字符过滤正则
2013/04/18 Javascript
javascript:void(0)是什么意思示例介绍
2013/11/17 Javascript
JQuery EasyUI 日期控件如何控制日期选择区间
2014/05/05 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
2015/08/21 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
2015/08/31 Javascript
jQuery实现的简单提示信息插件
2015/12/08 Javascript
Web前端开发之水印、图片验证码
2016/11/27 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
2017/03/15 Javascript
Vue实例中生命周期created和mounted的区别详解
2017/08/25 Javascript
javascript回调函数详解
2018/02/06 Javascript
webstorm添加*.vue文件支持
2018/05/08 Javascript
NodeJS如何实现同步的方法示例
2018/08/24 NodeJs
详解React中合并单元格的正确写法
2019/01/08 Javascript
npm 常用命令详解(小结)
2019/01/17 Javascript
mpvue+vant app搭建微信小程序的方法步骤
2019/02/11 Javascript
一文了解Vue中的nextTick
2019/05/06 Javascript
JavaScript实现栈结构Stack过程详解
2020/03/07 Javascript
Nodejs 数组的队列以及forEach的应用详解
2021/02/25 NodeJs
python提取字典key列表的方法
2015/07/11 Python
让Django支持Sql Server作后端数据库的方法
2018/05/29 Python
python中单例常用的几种实现方法总结
2018/10/13 Python
Python实现大数据收集至excel的思路详解
2020/01/03 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
2020/04/07 Python
HTML5 表单验证失败的提示语问题
2017/07/13 HTML / CSS
html table呈现个人简历以及单元格宽度失效的问题解决
2021/01/22 HTML / CSS
Clos19英国:高档香槟、葡萄酒和烈酒在线购物平台
2020/07/10 全球购物
《东方明珠》教学反思
2014/04/20 职场文书
五心教育心得体会
2014/09/04 职场文书
公司领导班子对照检查材料
2014/09/24 职场文书
画展观后感
2015/06/17 职场文书
学校学期工作总结
2015/08/13 职场文书
人事部:年度述职报告范文
2019/07/12 职场文书
Django使用channels + websocket打造在线聊天室
2021/05/20 Python
使用CSS实现黑白格背景效果
2022/06/01 HTML / CSS