Прежде всего, вам необходимо установить высоту размера шрифта, а затем в соответствии со значением высоты шрифта определить текущую высоту вашего текста, сколько кросс-текстовых строк, конечно, одинаково Высоту шрифта нужно накапливать, если текст не превышает наибольшее текстовое поле Высота, все показывать, в противном случае показывать только текст внутри блока текста. Высокие значения требуют вашего собственного определения. Чем больше заданная высота, тем больше высота текста, который необходимо отобразить и перехватить.
После обработки эффекта (решить)
До обработки эффекта (
нераскрытый)
AutoWrappedText.auto_wrap = function(ctx, text, maxWidth, maxHeight) {
var words = text.split("");
var lines = [];
var currentLine = words[0];
var total_height = 0;
for (var i = 1; i < words.length; i++) {
var word = words[i];
var width = ctx.measureText(currentLine + word).width;
if (width < maxWidth) {
currentLine += word;
} else {
lines.push(currentLine);
currentLine = word;
// TODO dynamically get font size
total_height += 25;
if (total_height >= maxHeight) {
break
}
}
}
if (total_height + 25 < maxHeight) {
lines.push(currentLine);
} else {
lines[lines.length - 1] += "…";
}
return lines;};