09Canvas——文字绘制

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>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值