Javascript 画布上一个文本的不同格式?
假设我有以下文本:Javascript 画布上一个文本的不同格式?,javascript,html,canvas,html5-canvas,Javascript,Html,Canvas,Html5 Canvas,假设我有以下文本: The Text 是否可以在画布上书写此文本,但要使用粗体和文本普通 所以它看起来是这样的: 文本 我知道整个文本的加粗方法,但我找不到单独格式化的方法。只要加粗的单词是第一个,你就可以在现有文本上写: var canvas=document.body.appendChild(document.createElement(“canvas”); var size=canvas.width=canvas.height=200; var ctx=canvas.getContex
The Text
是否可以在画布上书写此文本,但要使用粗体和文本普通
所以它看起来是这样的:
文本
我知道整个文本的加粗方法,但我找不到单独格式化的方法。只要加粗的单词是第一个,你就可以在现有文本上写:
var canvas=document.body.appendChild(document.createElement(“canvas”);
var size=canvas.width=canvas.height=200;
var ctx=canvas.getContext(“2d”);
函数绘图(){
clearRect(0,0,size,size);
ctx.font=“10pt快递”;
ctx.fillText(“文本”,100100);
setTimeout(函数(){
ctx.font=“bold 10pt快递”;
ctx.fillText(“The”,100100);
设置超时(绘图,1000);
}, 1000);
}
draw()代码>绘制文本很难,最难的部分是根据字体计算文本的位置(第一个粗体部分位于(0,0)
,第二个位于(50,0)
)
我建议您(看起来不再需要维护,但运行良好),它已经可以处理所有事情,并且有一个HTML友好的数据模型。如果您不想要任何依赖项,或者您认为它太多,那么Emil的解决方案会更好。也许这会对您有所帮助。只需写两遍课文
var c=document.getElementById(“myCanvas”);
var ctx=c.getContext(“2d”);
ctx.font=“Bold 30px Arial”;
ctx.fillText(“The”,10,50);
ctx.font=“30px Arial”;
ctx.fillText(“文本”,70,50)代码>
如果单词这个
是随机的,有时会变成一个
,该怎么办?@ChrisK。我对我的答案进行了编辑,以处理动态文本。另请参见: