canvas——绘制文字

1、 绘制上下文的文字属性 

 

font  设置或返回文本内容的当前字体属性
    * font 属性使用的语法与 CSS font 属性相同。

例如:ctx.font = "18px '微软雅黑'";

textAlign    设置或返回文本内容的当前对齐方式
    * start :    默认。文本在指定的位置开始。
    * end   :    文本在指定的位置结束。
    * center:    文本的中心被放置在指定的位置。
    * left  :    文本左对齐。

 

    * right :    文本右对齐。  

    


 例如:ctx.textAlign = 'left';         

textBaseline     设置或返回在绘制文本时使用的当前文本基线   
    * alphabetic :   默认。文本基线是普通的字母基线。
    * top        :   文本基线是 em 方框的顶端。。
    * hanging    :   文本基线是悬挂基线。
    * middle     :   文本基线是 em 方框的正中。
    * ideographic:   文本基线是em基线。

 

    * bottom     :   文本基线是 em 方框的底端。

 

     

 

    例如: ctx.textBaseline = 'top';
    单词:
     alphabetic: 字母的;照字母次序的   [,ælfə'bɛtɪk]

 

     ideographic:表意的;表意字构成的   英 [,ɪdɪəʊ'ɡræfɪk]   美 [,ɪdɪə'græfɪk]

2、上下文绘制文字方法  

 

    * ctx.fillText()      在画布上绘制“被填充的”文本
    * ctx.strokeText()    在画布上绘制文本(无填充)
    * ctx.measureText()   返回包含指定文本宽度的对象
    * 单词:measure 测量;估量;权衡   英 ['meʒə]   美 ['mɛʒɚ]

    //综合案例代码:
    ctx.moveTo( 300, 300 );
    ctx.fillStyle = "purple";               //设置填充颜色为紫色
    ctx.font = '20px "微软雅黑"';           //设置字体
    ctx.textBaseline = "bottom";            //设置字体底线对齐绘制基线
    ctx.textAlign = "left";                 //设置字体对齐的方式
    //ctx.strokeText( "left", 450, 400 );

 

    ctx.fillText( "Top-g", 100, 300 );        //填充文字

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>Canvas文字绘制</title>
	</head>
<body>

	<div id="container">
		<canvas id="cavsElem">
			你的浏览器不支持canvas,请升级浏览器
		</canvas>
	</div>

	<script>
		(function(){
			var canvas = document.querySelector('#cavsElem');
			var ctx = canvas.getContext('2d');

			canvas.width = 900;
			canvas.height = 600;
			canvas.style.border = "1px solid #000";

			// =S 绘制坐标参照系
			ctx.beginPath();
			ctx.moveTo(0,301);
			ctx.lineTo(900,301);
			ctx.strokeStyle = "teal";			
			ctx.stroke();		

			ctx.moveTo(450,0);
			ctx.lineTo(450,600);
			ctx.stroke();

			ctx.fillRect(445,295,10,10);
			// =E 绘制坐标参照系

			//绘制字体
			ctx.font = '20px "微软雅黑"';
			ctx.fillStyle = "red";
			ctx.textBaseline = "top";
			ctx.fillText("Top-g", 100, 300);

			ctx.textBaseline = "middle";
			ctx.fillText("middle-g", 200, 300);

			ctx.textBaseline = "bottom";
			ctx.fillText("bottom-g", 490, 300);

			ctx.textBaseline = "Alphabetic";
			ctx.fillText("Alphabetic-g", 700, 300);


			//绘制字体 设置对齐方式
			ctx.fillStyle = "purple";
			ctx.textAlign = "left";
			ctx.strokeText("left", 450, 400);

			ctx.textAlign = "right";
			ctx.strokeText("right", 450, 440);

			ctx.textAlign = "start";
			ctx.strokeText("start", 450, 480);

			ctx.textAlign = "end";
			ctx.strokeText("end", 450, 520);

			ctx.textAlign = "center";
			ctx.strokeText("center", 450, 560);

		}());
	</script>
</body>
</html>

效果:

  • 5
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值