我正在尝试使用 Canvas 元素在图像上写入文本。
我已将字体粗细设置为 900,但在移动设备上它不显示。
在桌面上它很好,甚至在响应模式下测试它看起来也很好,但是当我让它上线时,较重的字体粗细并没有出现在我的手机上。
我尝试了Debug JS的注释中的代码片段,修改了一些特定的画布元素来调试它,我发现由于某种原因,它只ctx.font存储字体大小和字体名称,但不存储字体粗细。
我添加了这个词bold,它会存储它,但不会bolder存储数字值。
有谁知道这里发生了什么事吗?
我提供了一个代码片段和调试的屏幕截图,显示了它如何存储字体值。

function main() {
// Put template on canvas
ctx.drawImage(img, 0, 0, size, size);
ctx.font = "bold 110px 'Saira Condensed', sans-serif";
ctx.textAlign = "center";
ctx.fillStyle = "#ffffff";
ctx.fillText(number, 325, 290);
}
Run Code Online (Sandbox Code Playgroud)
Chrome 和 Safari 还要求设置font-style才能使用font-weight的数值:
const canvas = document.querySelector( "canvas" );
const ctx = canvas.getContext( "2d" );
// add 'normal' font-style
ctx.font = "normal 900 24px Unknown, sans-serif";
ctx.fillText( "bold", 50, 50 );
ctx.font = "24px Unknown, sans-serif";
ctx.fillText( "normal", 150, 50 );Run Code Online (Sandbox Code Playgroud)
canvas { background: white }Run Code Online (Sandbox Code Playgroud)
<canvas></canvas>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3795 次 |
| 最近记录: |