分享有价值的资源
  • 你还未登录成为会员进行更多操作
    登 录
    个人中心资源投稿每日签到任务奖励
  • 你还未登录成为会员进行更多操作
    登 录
    个人中心资源投稿每日签到任务奖励
  • 1
  • 0
  • 0
  • 点击排行

    通过LetterAvatar实现纯前端生成字母头像-BanYuner

    前段时间我花了不少时间来折腾站点头像的问题,同时添加了头像上传功能,原本是通过WordPress插件来实现的,后来集成到了主题并添加到了用户设置中去了。

    当时我的想法是,注册用户有一个默认头像,然后可以自己选择站点为大家提供的一些头像,同时也提供了上传自己的头像等等功能,但是今天看到了这个方法之后,就觉得又要开始折腾了。

    那么代码方面如下:

    /**
     * LetterAvatar
     * 
     * Artur Heinze
     * Create Letter avatar based on Initials
     * based on https://gist.github.com/leecrossley/6027780
     */
    (function(w, d){
    	function LetterAvatar (name, size, color) {
    		name  = name || '';
    		size  = size || 60;
    		var colours = [
    				"#1abc9c", "#2ecc71", "#3498db", "#9b59b6", "#34495e", "#16a085", "#27ae60", "#2980b9", "#8e44ad", "#2c3e50", 
    				"#f1c40f", "#e67e22", "#e74c3c", "#00bcd4", "#95a5a6", "#f39c12", "#d35400", "#c0392b", "#bdc3c7", "#7f8c8d"
    			],
    			nameSplit = String(name).split(' '),
    			initials, charIndex, colourIndex, canvas, context, dataURI;
    		if (nameSplit.length == 1) {
    			initials = nameSplit[0] ? nameSplit[0].charAt(0):'?';
    		} else {
    			initials = nameSplit[0].charAt(0) + nameSplit[1].charAt(0);
    		}
    		if (w.devicePixelRatio) {
    			size = (size * w.devicePixelRatio);
    		}
    			
    		charIndex     = (initials == '?' ? 72 : initials.charCodeAt(0)) - 64;
    		colourIndex   = charIndex % 20;
    		canvas        = d.createElement('canvas');
    		canvas.width  = size;
    		canvas.height = size;
    		context       = canvas.getContext("2d");
    		 
    		context.fillStyle = color ? color : colours[colourIndex - 1];
    		context.fillRect (0, 0, canvas.width, canvas.height);
    		context.font = Math.round(canvas.width/2)+"px 'Microsoft Yahei'";
    		context.textAlign = "center";
    		context.fillStyle = "#FFF";
    		context.fillText(initials, size / 2, size / 1.5);
    		dataURI = canvas.toDataURL();
    		canvas  = null;
    		return dataURI;
    	}
    	LetterAvatar.transform = function() {
    		Array.prototype.forEach.call(d.querySelectorAll('img[avatar]'), function(img, name, color) {
    			name = img.getAttribute('avatar');
    			color = img.getAttribute('color');
    			img.src = LetterAvatar(name, img.getAttribute('width'), color);
    			img.removeAttribute('avatar');
    			img.setAttribute('alt', name);
    		});
    	};
    	// AMD support
    	if (typeof define === 'function' && define.amd) {
    		
    		define(function () { return LetterAvatar; });
    	
    	// CommonJS and Node.js module support.
    	} else if (typeof exports !== 'undefined') {
    		
    		// Support Node.js specific `module.exports` (which can be a function)
    		if (typeof module != 'undefined' && module.exports) {
    			exports = module.exports = LetterAvatar;
    		}
    		// But always support CommonJS module 1.1.1 spec (`exports` cannot be a function)
    		exports.LetterAvatar = LetterAvatar;
    	} else {
    		
    		window.LetterAvatar = LetterAvatar;
    		d.addEventListener('DOMContentLoaded', function(event) {
    			LetterAvatar.transform();
    		});
    	}
    })(window, document);
    

    如果你看不明白不知道如何使用的话,没关系,原博主已经贴心的为你准备了WordPress相关的插件版本,安装即可使用: https://github.com/mengkunsoft/mk-letter-avatar/archive/master.zip ,至于效果方面文章开头的就是了。

    这里值得注意的就是这个插件理论上安装即可使用,但是有些主题通过自己的头像函数接管了WordPress自带的头像函数,那么这样的情况下,你看就需要自己修改了,至于具体如何修改,因主题不同这里无法给出一个通用解决办法,自行尝试吧。

    已售55张
    已售29个
    已售10张
  • 版权声明:整理不易,如无特殊说明,文章内容均为本站原创,转载请注明出处
  • 本文标题:通过LetterAvatar实现纯前端生成字母头像
  • 本文链接:https://www.banyuner001.top/7191.html
  • 投稿资源
  • alasfeet.com
  • cindy女王系列原创视频图片福利资源私拍全套合集
  • 【精品】 搜罗快手 性感 乳摇,各种类型的女士们 给你晃h
  • 【调教】清纯抖M少女接受两女调教,脚踩玩足
  • 23位 推特 flj 小合集 612M
  • 皮皮娘:白丝双马尾洛丽塔被尾随入室嘿嘿 1V 1.18G
  • 极品韩国小情侣大尺度自拍流出 33V
  • 推特上收集的高颜值小母狗调教视频98V整理
  • 风吟鸟唱83部高清视频超全合集打包39.5GB
  • 91近期精品合集 人妻少妇+绿帽淫妻+萝莉母狗 露脸的不少【80V】
  • 热评文章