Javascript 我如何用画布包装我的文本?

Javascript 我如何用画布包装我的文本?,javascript,css,canvas,html5-canvas,Javascript,Css,Canvas,Html5 Canvas,如果文本行宽度超过一定数量的像素,我将尝试包装文本。如果文本超过我想要的最大宽度,我会将文本打印到控制台上(我这样做是为了测试),但是我不知道如何将文本包装起来。有人能帮我或给我指出正确的方向吗 var text = result[0].text; var max_text_width = 150; ctx.font = text.font; ctx.textAlign = text.align; ctx.fillStyle = text.color; for(var i = 0; i <

如果文本行宽度超过一定数量的像素,我将尝试包装文本。如果文本超过我想要的最大宽度,我会将文本打印到控制台上(我这样做是为了测试),但是我不知道如何将文本包装起来。有人能帮我或给我指出正确的方向吗

var text = result[0].text;
var max_text_width = 150;
ctx.font = text.font;
ctx.textAlign = text.align;
ctx.fillStyle = text.color;
for(var i = 0; i < text.fill.length; i++){
    var metrics = ctx.measureText(text.fill[i]);
    var text_width = metrics.width;
    if(text_width > max_text_width){
        ctx.fillText(text.fill[i], text.x[i], text.y[i]);
    }
    else{
        ctx.fillText(text.fill[i], text.x[i], text.y[i]);
    }
}
var text=result[0]。text;
var max_text_width=150;
ctx.font=text.font;
ctx.textAlign=text.align;
ctx.fillStyle=text.color;
对于(变量i=0;i最大文本宽度){
ctx.fillText(text.fill[i],text.x[i],text.y[i]);
}
否则{
ctx.fillText(text.fill[i],text.x[i],text.y[i]);
}
}
用于图形,不提供非常复杂的文本打印工具。通常的方法是使用透明的
覆盖
,并使用JavaScript DOM API和CSS在画布上布局文本元素(如果用例可行)

如果DOM不可用,则有两种选择

  • 编写自己的测试布局代码,例如

  • 有一些用于基于高级
    的文本操作的库,请参阅


但是,由于
缺少用于精确文本和字符跟踪和样式设置的API,因此基于DOM的方法将优于可用效果和渲染输出。

最好将其作为注释发布,或者从站点链接发布适当的代码。