在我的不少项目中,都有缺省头像的问题。为了保持个性和方便辨认,会给没有头像的用户填充带名字的头像。
代码分享:https://github.com/joaner/namedavatar
调用简单
如果上传头像不存在,直接会在 <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>\">
相比其它类似项目
-
首先对中文姓名的支持更好
直接在<img>标签上填充data URI,绿色无添加,应用成本更低
基于<svg>,没有用<canvas>渲染,性能也会好一点
支持的配置项更多,比如可以定义显示哪部分,或是随机背景颜色
也支持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>
以上就是本次整理的全部内容,感谢大家对的支持。
© 版权声明
THE END
暂无评论内容