最近作一個刮刮卡,須要將文字在canvas中水平、垂直居中
html
<canvas type='2d' id="myCanvas" width="300" height="150" style="background:yellow;" \>
使用canvas2d構建畫布web
藍色線爲水平中線
紅色線爲垂直中線canvas
fillText
方法爲canvas設置文本方法,使用以下所示小程序
ctx.fillText('文本內容', x, y)
x爲橫軸座標
y爲縱軸座標
上例將文本內容設置在canvas畫布的座標位置上,跳脫web的開發思惟,咱們能夠認爲X點相對於文本有左,中,右三種佈局,Y點相對於文本有上、中、下的佈局,這樣就很好理解文本在canvas上是如何繪製了佈局
找到X軸的中點位置,如上圖,在150px這個點上
注意X點相對於文本的位置spa
ctx.fillStyle = '#aaa' ctx.font = 'bold 30px "Gill Sans Extrabold"' ctx.textAlign = 'center' ctx.fillText('文本內容', 150, 0)
圖示只做說明code
找到X軸的中點位置,如上圖,在75px這個點上
注意Y點相對於文本的位置xml
ctx.fillStyle = '#aaa' ctx.font = 'bold 30px "Gill Sans Extrabold"' ctx.textBaseline = 'middle' ctx.fillText('文本內容', 0, 75)
圖示只做說明htm
ctx.fillStyle = '#aaa' ctx.font = 'bold 30px "Gill Sans Extrabold"' ctx.textAlign = 'center' ctx.textBaseline = 'middle' ctx.fillText(opts.maskerTitle, left, top)