仅在加载Google Web字体后绘制到画布
Draw to canvas only after Google Web Font is loaded
我在画布上使用.fillText()
,我希望它的文本是Google Web字体(在我的例子中是Oswald)。
当页面加载时,文本会在字体加载之前绘制到画布上,但很明显,一旦字体加载,画布上的文本就不会更新,因为它已经被绘制为位图。
如何将此文本绘制延迟到Web字体加载之后?画布上还画了一个矩形,我仍然想立即在$(document).ready()
上画它。
我应该说,我想延迟.fillText()
,而不是覆盖默认字体,因为它是一个面向设计的应用程序,FOUT对美观性有负面影响。
以下是如何使用TypeKit的WebFontLoader的示例,以便在使用字体之前有时间加载:
// load google font == Monoton
WebFontConfig = {
google:{ families: ['Monoton'] },
active: function(){start();},
};
(function(){
var wf = document.createElement("script");
wf.src = 'https://ajax.googleapis.com/ajax/libs/webfont/1.5.10/webfont.js';
wf.async = 'true';
document.head.appendChild(wf);
})();
var canvas=document.getElementById("canvas");
var ctx=canvas.getContext("2d");
var cw=canvas.width;
var ch=canvas.height;
function start(){
ctx.font = '50px Monoton';
ctx.textBaseline = 'top';
ctx.fillText('No', 20, 10);
}
body{ background-color: ivory; padding:10px; }
#canvas{border:1px solid red;}
<canvas id="canvas" width=300 height=300></canvas>
相关文章:
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 用Javascript更改我网站上的字体大小
- 有没有一个javascript图形绘制库可以进行气球树布局
- 不同字体的字母间距不同
- 使用相同的数据集绘制各种符号
- 如何在谷歌字体加载时显示加载图像
- 使用onclick绘制SVG路径
- 在谷歌地图上绘制位置数据库
- 用chart.js绘制条形图
- “可绘制地图”设置地图选项“纬度-经度”
- 多维数据集网格未在指定的分区中绘制
- PhoneGap选项卡栏自定义字体,背景图案
- 使用谷歌图表在x轴上绘制日期
- 使用fabric.js从矩形区域获取对象,并将该区域绘制到画布上
- 每个选择器的Jquery css颜色都在变化,但字体大小却没有变化
- 如何在React Native中绘制图形
- 画布中绘制的矩形区域的弹出工具提示
- 仅在加载Google Web字体后绘制到画布
- HTML5 画布:绘制的换行旋转文本的自动字体大小