```javascript
creatTeacherText() {
var c = document.getElementById('teacher-canvas')
var cxt = c.getContext('2d')
cxt.font = 'normal 32px PingFangSC-Regular, PingFang SC'
// 创建渐变
var gradient = cxt.createLinearGradient(0, 0, c.width, 0)
gradient.addColorStop('0', '#fff')
// 填充渐变
cxt.fillStyle = gradient
const str = this.collegeTeacher
this.toFormateStr(cxt, str, 656, 2, 0, 32, 54, 108)
},
// 换行
toFormateStr(ctx, str, draw_width, lineNum, startX, startY, steps, draw_height) {
var strWidth = ctx.measureText(str).width // 测量文本源尺寸信息(宽度)
var startpoint = startY
var keyStr = ''
var sreLN = strWidth / draw_width
var liner = Math.ceil(sreLN) // 计算文本源一共能生成多少行
const strlen = parseInt(str.length / sreLN) // 等比缩放测量一行文本显示多少个字符
// 若文本不足一行,则直接绘制,反之大于传入的最多行数(lineNum)以省略号(...)代替
if (strWidth < draw_width) {
ctx.fillText(str, startX, startpoint)
} else {
for (var i = 1; i < liner + 1; i++) {
const startPoint = strlen * (i - 1)
if (i < lineNum || lineNum == -1) {
keyStr = str.substr(startPoint, strlen)
ctx.fillText(keyStr, startX, startpoint)
} else {
if (str.substr(startPoint, strlen).length >= strlen) {
keyStr = str.substr(startPoint, strlen - 2) + '...'
} else {
keyStr = str.substr(startPoint, strlen)
}
ctx.fillText(keyStr, startX, startpoint)
break
}
startpoint = startpoint + steps
}
}
setTimeout(() => {
ctx.clearRect(0, 0, draw_width, draw_height) // 删除之前创建的文字
}, 500)
},