微信小程序canvas文本自動換行,同樣適用于普通的H5頁面的canvas桑逝,注意調(diào)用方法前要設(shè)置字體,例如: ctx.font = '12px Arial'
/**
* canvas文本自動換行俏让,注意調(diào)用前要設(shè)置字體楞遏,例如: ctx.font = '12px Arial'
* @param {*} ctx CanvasRenderingContext2D
* @param {*} text 文本
* @param {*} x
* @param {*} y
* @param {*} lw 行寬
* @param {*} lh 行高
* return 繪制文本所需的高度
*/
const fillTextLineBreak = (ctx,text,x,y,lw,lh)=> {
let i = 0
let n = 0
let r = -1
while (i < text.length){
while (ctx.measureText(text.substring(n, i)).width < lw && i < text.length) {
i++
}
r++
ctx.fillText(text.substring(n, i), x, y + lh * r)
n = i
}
return lh * r
}
使用:
context.font = 'bold 16px Arial'
const ty = fillTextLineBreak(context, title, 10, 10, 18)
覺得好用,點個贊唄首昔!