canvas同一 画布内输出多种内容格式, 不同文字,不的颜色 不同的字体 自动算出 每种字体内容的宽度,

canvas同一 画布内输出多种内容格式, 不同文字,不的颜色 不同的字体 自动算出 每种字体内容的宽度,

<canvas id="canvas" width="500" height="150" style="border: 1px dashed gray;display: block"></canvas>
 window.onload = function() {
    	var list = [{
    			name: '第一种字体和颜色',
    			colors: '#f00000',
    			font: '24px ',
    			width: ''
    		},
    		{
    			name: '第二种字体和颜色',
    			colors: '#000000',
    			font: '16px  ',
    			width: ''
    		},
    		{
    			name: '第三种字体和颜色',
    			colors: '#f0f',
    			font: '14px  ',
    			width: ''
    		}
    	]
    	pieChart(list);
    };

    function pieChart(list) {
    	var c = document.getElementById("canvas");
    	var cxt = c.getContext('2d');
    	var lab = list;
    	var no0 = ''
    	var no1 = ''
		var no2 = ''  
    	for (var i = 0; i < lab.length; i++) {
    		if (i == 0) {
				cxt.font = lab[0].font + 'Microsoft YaHe';
				cxt.fillStyle = lab[0].colors; 
    			var txtwidth = 0;
    			var w0 = cxt.measureText(lab[0].name).width+10;
    			lab[i].width = txtwidth;		
    		} else if (i == 1) {
				cxt.font = lab[1].font + 'Microsoft YaHe';
				cxt.fillStyle = lab[1].colors; //绘制颜色
    			var txtwidth =w0;
    			var w1 = cxt.measureText(lab[1].name).width+10;
    			lab[i].width = txtwidth;
    		} else if (i == 2) {
				cxt.font = lab[2].font + 'Microsoft YaHe';
				cxt.fillStyle = lab[2].colors; //绘制颜色
    			var txtwidth = w1+w0;
    			lab[i].width = txtwidth;

    		}
    		cxt.fillText(lab[i].name, lab[i].width, 50);

    	}
    }
		

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

功能点分享

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值