我的网站中有多种字体,它加载速度非常慢,我有一些 jquery 功能,我需要在加载字体时加载它们。
我尝试过调用它
jQuery(window).load(function () {
//my_function()
});
不工作怎么办???
一个问题是Google 字体加载器回调/事件是,如果您使用 jQuery - 您可能不想在 DOM 加载之前运行事件处理程序 - 但您不想在确定所有字体都加载之前冒险运行它。
这是我的解决方案。假设:
- 您正在使用 Google 字体加载器
- 您只想在加载所有字体、CSS 和 DOM 后才运行某些内容
- 你可以在字体加载器启动之前加载 jQuery(因为我正在使用
$.Callbacks()
)
这就是我在 jQuery 之后立即执行的操作<script>
tag
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 的方式)回调 work).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)