HTML5 canvas文本属性与方法

文本属性和方法
font                        设置或返回文本内容的当前字体属性

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

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


fillText(text,x,y,maxWidth)                在画布上绘制“被填充的”文本
text         规定在画布上输出的文本。
x         开始绘制文本的 x 坐标位置(相对于画布)。
y         开始绘制文本的 y 坐标位置(相对于画布)。
maxWidth         可选。允许的最大文本宽度,以像素计。

strokeText(text,x,y,maxWidth)        在画布上绘制文本(无填充)
text         规定在画布上输出的文本。
x         开始绘制文本的 x 坐标位置(相对于画布)。
y         开始绘制文本的 y 坐标位置(相对于画布)。
maxWidth         可选。允许的最大文本宽度,以像素计。

measureText()        返回包含指定文本宽度的对象
context.measureText(text).width;        text 要测量的文本。

    <canvas id="e" width="500" height="450" style="border:1px solid #000"></canvas>
    <script type="text/javascript">
    var a=document.getElementById("e");
    var ctx=a.getContext("2d");
    ctx.font="40px 宋体";                //设置或返回文本内容的当前字体属性
    ctx.textAlign="center";                //设置或返回文本内容的当前对齐方式
    ctx.textBaseline="middle";        //设置或返回在绘制文本时使用的当前文本基线
    var grd=ctx.createLinearGradient(50,50,150,50);
    grd.addColorStop(0,"red");
    grd.addColorStop(0.3,"blue");
    grd.addColorStop(0.5,"green");
    grd.addColorStop(0.7,"yellow");
    grd.addColorStop(1,"black");
    ctx.fillStyle=grd;
    ctx.fillText("MINSONG",100,50);        //在画布上绘制“被填充的”文本

    ctx.font="60px 宋体";
    ctx.textAlign="center";
    ctx.textBaseline="middle";
    var grd=ctx.createLinearGradient(100,50,350,50);
    grd.addColorStop(0,"red");
    grd.addColorStop(0.3,"blue");
    grd.addColorStop(0.5,"green");
    grd.addColorStop(0.7,"yellow");
    grd.addColorStop(1,"black");
    ctx.strokeStyle=grd;
    var txt="ZHANGSHENG";
    ctx.fillText("width:"+ctx.measureText(txt).width,180,300);        //返回包含指定文本宽度的对象
    ctx.strokeText(txt,200,150);        //在画布上绘制文本(无填充)
    </script>

 

posted @ 2015-12-22 16:08  ricesm  阅读(5810)  评论(0编辑  收藏  举报