javascript - HTML5 Canvas 中的居中(比例字体)文本

标签 javascript jquery html canvas fonts

我希望能够在我可以计算的矩形区域内将单行文本居中。我希望在 Canvas 上的 2D 几何中做的一件事是将宽度未知的东西居中。

我听说有一种解决方法,您可以在 HTML 容器中创建文本,然后调用 jQuery 的 width() 函数,但我没有正确处理文档正文的瞬时添加?宽度为 0。

如果我有一行文本,比填满屏幕的大部分宽度要短得多,我怎么知道在我知道的字体大小下它在 Canvas 上的宽度是多少?

最佳答案

您可以使用 measureText 来完成此操作

var canvas = document.getElementById("canvas"),
    ctx = canvas.getContext("2d")

canvas.width = 400;
canvas.height = 200;

ctx.fillStyle = "#003300";
ctx.font = '20px sans-serif';

var textString = "Hello look at me!!!",
    textWidth = ctx.measureText(textString ).width;


ctx.fillText(textString , (canvas.width/2) - (textWidth / 2), 100);

Live Demo

More elaborate demo

关于javascript - HTML5 Canvas 中的居中(比例字体)文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13771310/

相关文章:

javascript - FFMPEG 多截图命令

javascript - 我有一个关于 live 方法的问题

HTML CSS 布局与 float 元素的父级中断

javascript - Mootools 不会为 IE7 中的选择触发 "onChange"事件

javascript - Ember js - 切换传递给操作的当前值和先前值

javascript - jPlayer 进度条旋钮

jquery - 在 chrome 底部留下空间

javascript - 使光标在计时器上透明(0.5)

javascript - 将鼠标悬停在一个 div 上时更改其他 div 的类

javascript - 使用 ES6 解构赋值语法重新分配变量