Web サイトに複数のフォントがありますが、読み込みが非常に遅く、フォントの読み込み時にそれらを読み込む必要がある jquery 機能がいくつかあります。
私はそれを呼び出してみました
jQuery(window).load(function () {
//my_function()
});
動作していません。
Google フォント ローダーのコールバック/イベントに関する 1 つの問題は、jQuery を使用している場合 (DOM が読み込まれるまでイベント ハンドラーを実行したくない場合があります)、すべてを確認する前に実行するリスクを冒したくないということです。フォントが読み込まれます。
これが私の解決策です。仮定:
$.Callbacks()
)<script>
これは、jQueryタグの直後に行うことです。
var activeCallback = $.Callbacks();
WebFontConfig = {
google: { families: ['Open+Sans:400italic,400,300,600:latin'] },
active: function () { activeCallback.fire(); }
};
// ...
そして、標準の jQuery 対応関数
$(function()
{
// start slide show when all fonts are loaded (need to calculate heights)
activeCallback.add(function ()
{
startSlideshow();
});
// other DOM manipulation
});
コールバックは、Google フォント ローダーが完了するたびに発生しますが、ドキュメントがまだ完了していない場合、完了するまでイベントは発生しません (これが jQueryコールバックの仕組みです)。
イベントをキャプチャするには、フォントローダーを使用する必要があります。残念ながら、フォントをロードするクロスブラウザの方法はないので、GoogleWebFontLoaderを試してみることをお勧めします。
var WebFontConfig = {
monotype: { // Fonts.com
projectId: 'YourProjectId'
},
active: function() {
// do something
}
};
(function() {
var wf = document.createElement('script');
wf.src = ('https:' == document.location.protocol ? 'https' : 'http') +
'://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';
wf.type = 'text/javascript';
wf.async = 'true';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(wf, s);
})();
@ font-facesの読み込みプロセスを制御する場合は、GoogleとTypekitによって開発されたWebFontLoaderを使用してください。