javascript填充用戶的默認頭像,支持Vue.js

在個人很多項目中,都有缺省頭像的問題。爲了保持個性和方便辨認,會給沒有頭像的用戶填充帶名字的頭像。vue

github項目: https://github.com/joaner/nam...git

圖片描述

調用簡單

若是上傳頭像不存在,直接會在 <img> 標籤上填充默認頭像,用戶名從alt獲取:github

<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變成這樣canvas

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

相比其它相似項目

  • 首先對中文姓名的支持更好
  • 直接在<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>
相關文章
相關標籤/搜索