1、fillText() 方法
使用 fillText() 方法在在画布上绘制实心文本。语法为:
ctx.fillText(text, x, y, maxWidth);
参数说明:
text
规定在画布上输出的文本。x
表示开始绘制文本的 x 坐标位置(相对于画布)。y
表示开始绘制文本的 y 坐标位置(相对于画布)。maxWidth
表示允许的最大文本宽度,以像素计。可选。
<body>
<!--添加canvas元素,设置画布的大小-->
<canvas id="mycanvas" width="520px" height="1314px">
对不起,你的浏览器不支持canvas
</canvas>
<script type="text/javascript">
//获取canvas元素
var myCanvas = document.getElementById('mycanvas');
//获取Context上下文
var ctx = myCanvas.getContext('2d');
//绘制实心文本
ctx.fillText('Hello Syl!',10,50)
</script>
</body>
2、strokeText() 方法
使用 strokeText()
方法在画布上绘制空心文本。语法为:
ctx.strokeText(text, x, y, maxWidth);
注:参数说明与 fillText()
方法一致。
<body>
<!--添加canvas元素,设置画布的大小-->
<canvas id="mycanvas" width="520px" height="1314px">
对不起,你的浏览器不支持canvas
</canvas>
<script type="text/javascript">
//获取canvas元素
var myCanvas = document.getElementById('mycanvas');
//获取Context上下文
var ctx = myCanvas.getContext('2d');
//设置字体样式
ctx.font = '50px Georgia';
//绘制空心文本
ctx.strokeText('Hello Syl!',10,50)
</script>
</body>
3、font属性
使用 font
属性设置或返回画布上文本内容的当前字体属性。font
属性使用的语法与 CSS font
属性相同。
4、textAlign 属性
使用 textAlign
属性设置或返回文本内容的当前对齐方式。
ctx.textAlign = 'center|end|left|right|start';
参数说明:
start
默认值,表示文本在指定的位置开始。center
表示文本的中心被放置在指定的位置。end
表示文本在指定的位置结束。left
表示文本左对齐。right
表示文本右对齐。
注:使用 fillText()
或 strokeText()
方法在实际地在画布上绘制并定位文本。
<body>
<!--添加canvas元素,设置画布的大小-->
<canvas id="mycanvas" width="520px" height="1314px">
对不起,你的浏览器不支持canvas
</canvas>
<script type="text/javascript">
//获取canvas元素
var myCanvas = document.getElementById('mycanvas');
//获取Context上下文
var ctx = myCanvas.getContext('2d');
//画一条线便于展示
ctx.strokeStyle = 'blue';
ctx.moveTo(200, 20);
ctx.lineTo(200, 180);
ctx.stroke();
//设置字体样式
ctx.font = '20px Georgia';
//值为start的情况
ctx.textAlign = 'start';
ctx.strokeText('Hello Syl!', 200, 20);
//值为center的情况
ctx.textAlign = 'center';
ctx.strokeText('Hello Syl!', 200, 60);
//值为end的情况
ctx.textAlign = 'end';
ctx.strokeText('Hello Syl!', 200, 100);
//值为left的情况
ctx.textAlign = 'left';
ctx.strokeText('Hello Syl!', 200, 140);
//值为right的情况
ctx.textAlign = 'right';
ctx.strokeText('Hello Syl!', 200, 180);
</script>
</body>
5、textBaseline 属性
textBaseline
属性设置或返回在绘制文本时的当前文本基线。语法为:
ctx.textBaseline = 'alphabetic|top|hanging|middle|ideographic|bottom';
参数说明:
alphabetic
表示文本基线是普通的字母基线。默认值。top
表示文本基线是 em 方框的顶端。hanging
表示文本基线是悬挂基线。middle
表示文本基线是em
方框的正中。ideographic
表示文本基线是表意基线。bottom
表示文本基线是em
方框的底端。
<body>
<!--添加canvas元素,设置画布的大小-->
<canvas id="mycanvas" width="1314px" height="1314px">
对不起,你的浏览器不支持canvas
</canvas>
<script type="text/javascript">
//获取canvas元素
var myCanvas = document.getElementById('mycanvas');
//获取Context上下文
var ctx = myCanvas.getContext('2d');
//画一条线便于展示
ctx.strokeStyle = 'blue';
ctx.moveTo(20, 100);
ctx.lineTo(1314, 100);
ctx.stroke();
//设置字体样式
ctx.font = '30px Georgia';
//值为alphabetic的情况
ctx.textBaseline = 'alphabetic';
ctx.fillText('Hello Syl!', 20, 100);
//值为top的情况
ctx.textBaseline = 'top';
ctx.fillText('Hello Syl!', 220, 100);
//值为hanging的情况
ctx.textBaseline = 'hanging';
ctx.fillText('Hello Syl!', 420, 100);
//值为middle的情况
ctx.textBaseline = 'middle';
ctx.fillText('Hello Syl!', 620, 100);
//值为ideographic的情况
ctx.textBaseline = 'ideographic';
ctx.fillText('Hello Syl!', 820, 100);
//值为bottom的情况
ctx.textBaseline = 'bottom';
ctx.fillText('Hello Syl!', 1020, 100);
</script>
</body>