javascript – 改变Canvas的字体大小,不需要知道字体系列

前端之家收集整理的这篇文章主要介绍了javascript – 改变Canvas的字体大小,不需要知道字体系列前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法只更改画布上下文的字体大小而不必知道/写入字体系列.
var ctx = document.getElementById("canvas").getContext("2d");

 ctx.font = '20px Arial'; //Need to speficy both size and family...

注意:

ctx.fontSize = '12px'; //doesn't exist so won't work...
ctx.style.fontSize = '20 px' //doesn't exist so won't work... 
                         //we are changing the ctx,not the canvas itself

其他注意事项:我可以做一些类似的事情:检测’px’的位置,删除’px’之前的内容并将其替换为我的字体大小.但如果可能的话,我会喜欢一些比这更容易的东西.

解决方法

更新:(从评论)没有办法指定字体. Canvas的字体是在CSS中的短版字体之后建立的.

但是,总是在画布上设置一个字体(或字体类型),所以您可以使用以下方式首先提取当前字体:

var cFont = ctx.font;

然后替换大小的参数并将其设置(注意,也可能有一个样式参数).

一个简单的分裂为例:

var fontArgs = ctx.font.split(' ');
var newSize = '12px';
ctx.font = newSize + ' ' + fontArgs[fontArgs.length - 1]; /// using the last part

如果需要,您将需要支持风格(如果使用IIRC则首先使用).请注意,font-size是第四个参数,所以如果你没有font-variant(粗体,斜体,斜),font-variant(普通,小帽)和font-weight(bold等) .

猜你在找的JavaScript相关文章