gpt4 book ai didi

javascript - 检查 Typekit 是否加载了 JavaScript

转载 作者:行者123 更新时间:2023-11-30 12:48:32 27 4
gpt4 key购买 nike

我目前正在构建一个使用 jQuery 进行动画处理的布局,并且我正在使用 .width() 找出 div 的宽度。但是,有时它会在激活 TypeKit 之前获取 .width()(因此给出不正确的宽度)。

有没有一种方法可以使用 if 语句 检查 TypeKit 何时加载?

最佳答案

是的,有。

您可以使用带有回调的 Typekit.load,而不是在您的 head 标记中调用通常的 try{Typekit.load();}catch(e){} ( docs ):

try {
Typekit.load({
loading: function() {
// JavaScript to execute when fonts start loading
},
active: function() {
// JavaScript to execute when fonts become active
// this is where you want to init your animation stuff
},
inactive: function() {
// JavaScript to execute when fonts become inactive
}
})
} catch(e) {}

我实际上只是为我自己的项目做了这个,我没有能力更改该代码。所以如果你处于同样的情况,试试这个:

// configure these
var check_interval = 100; // how many ms to leave before checking again
var give_up_after_ms = 2000; // how many ms before we consider the page loaded anyway.

// caches etc
var count = 0;
var count_limit = give_up_after_ms / check_interval;
var html = $("html");
var font_loaded_check_interval;

var check_load_status = function(callback) {

if(html.hasClass("wf-active") || count >= count_limit) {

// fonts are loaded or give_up_after_ms was reached

if(font_loaded_check_interval) {
clearInterval(font_loaded_check_interval);
font_loaded_check_interval = null;
}

// call the callback
callback.call(this);
return true;

}

count++;
return false;

};

function doneCallback() {
// code to run when fonts are loaded or timeout reached
alert("Done");
}

// check on initial run of JS, and if not ready, start checking at regular intervals.
if( ! check_load_status(doneCallback)) {
font_loaded_check_interval = setInterval(function() {
check_load_status(doneCallback);
}, check_interval);
}

关于javascript - 检查 Typekit 是否加载了 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21757556/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com