【发布时间】:2020-04-01 09:56:48
【问题描述】:
我正在尝试为句子添加背景并将其绘制在画布上。
单击动画按钮时,文本背景(红色)在第一个单词上绘制不正确。当在那个词上安慰 measuretext() 时,值要小得多。
这里是动画和添加文本背景的功能。
const fillMixedText = (canv, ctx, args, x, y) => {
let defaultFillStyle = "black";
let defaultFont = "600 54px Arial";
ctx.save();
let i = 0;
args.forEach(({ text, fillStyle, font }) => {
// console.log("x",x);
ctx.setTransform(1, 0, 0, 1, 0, 0);
ctx.textBaseline = "top";
ctx.fillStyle = "red";
console.log(x,text,ctx.measureText(text).width)
ctx.fillRect(x, y, ctx.measureText(text).width , 70);
// console.log(text, ctx.measureText(text).width);
ctx.fillStyle = fillStyle || defaultFillStyle;
ctx.font = defaultFont;
ctx.fillText(text, x, y);
x += ctx.measureText(text).width;
i++;
});
ctx.restore();
};
这是JSFiddle
我想让整个句子有背景。
【问题讨论】:
-
问题是什么?你想要红色背景的句子吗?
-
是的,我希望句子有红色背景
标签: javascript html canvas html5-canvas