小程序中canvas實現水平、垂直居中

最近作一個刮刮卡,須要將文字在canvas中水平、垂直居中
image.pnghtml

wxml
<canvas type='2d' id="myCanvas" width="300" height="150"  style="background:yellow;" \>

使用canvas2d構建畫布web

image.png

藍色線爲水平中線
紅色線爲垂直中線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)

image.png
圖示只做說明code

垂直居中

找到X軸的中點位置,如上圖,在75px這個點上
注意Y點相對於文本的位置xml

ctx.fillStyle = '#aaa'
ctx.font = 'bold 30px "Gill Sans Extrabold"'
ctx.textBaseline = 'middle'
ctx.fillText('文本內容', 0, 75)

image.png
圖示只做說明htm

完美居中

ctx.fillStyle = '#aaa'
ctx.font = 'bold 30px "Gill Sans Extrabold"'
ctx.textAlign = 'center'
ctx.textBaseline = 'middle'
ctx.fillText(opts.maskerTitle, left, top)

關注這個開源小程序

xquery.png

相關文章
相關標籤/搜索