Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
加载字体后调用jQuery函数。_Jquery_Load - Fatal编程技术网

加载字体后调用jQuery函数。

加载字体后调用jQuery函数。,jquery,load,Jquery,Load,我在网站上有多种字体,加载速度非常慢,我有一些jquery功能,需要在加载字体时加载它们 我已经试着把它叫来了 jQuery(window).load(function () { //my_function() }); 不工作怎么办?如果您想控制@font-faces的加载过程,请使用谷歌和Typekit开发的WebFont Loader 为了捕获事件,您需要使用字体加载器。遗憾的是,没有跨浏览器加载字体的方法,因此我建议您尝试以下方法: 其中的一个问题是,如果使用jQuery,在加载DO

我在网站上有多种字体,加载速度非常慢,我有一些jquery功能,需要在加载字体时加载它们

我已经试着把它叫来了

jQuery(window).load(function () { 
 //my_function()
});

不工作怎么办?

如果您想控制@font-faces的加载过程,请使用谷歌和Typekit开发的WebFont Loader


为了捕获事件,您需要使用字体加载器。遗憾的是,没有跨浏览器加载字体的方法,因此我建议您尝试以下方法:

其中的一个问题是,如果使用jQuery,在加载DOM之前可能不想运行事件处理程序,但在确保加载所有字体之前,不想冒险运行事件处理程序

这是我的解决方案。假设:

  • 您正在使用谷歌字体加载器
  • 只有在加载了所有字体、css和DOM之后,您才想运行一些东西
  • 您可以在字体加载程序启动之前加载jQuery(因为我使用的是
    $.Callbacks()
这是我在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就是这样工作的)(

字体是如何加载的?请看这篇文章:我没有使用@font-faces,我使用的是fonts.com javascript,它为每个浏览器提供了合适的字体。非常感谢,如果有其他解决方案,请告知。))如果有任何其他变体可以加载字体状态,请让我知道,谢谢您的回复。使用谷歌的WebFont Loader是非常有用的最好的办法。它直接从fonts.com加载字体,并在所有字体都已加载时提醒您。@Blender,他在问您Google是如何完成的,即原始Javascript。
 $(function() 
 {
    // start slide show when all fonts are loaded (need to calculate heights)
    activeCallback.add(function ()
    {
        startSlideshow();
    });

    // other DOM manipulation
 });