2010-07-22 4 views
10

J'ai un problème avec jQuery et @ font-face.jQuery ne fonctionnant pas correctement, en raison de @ font-face

J'ai besoin de travailler sur la hauteur d'un <div>, qui fonctionne bien, mais il y a un petit délai pour le chargement des polices et dès qu'elles le font, les fontes @ font-face étaient plus grandes que le fallback polices, de sorte que la hauteur est plus petite que cela devrait être.

J'ai essayé d'utiliser Modernizr, mais cela ne sert à rien car il ne détecte que si le navigateur est capable de @ font-face, pas si les polices ont encore été chargées ou pas.

Le code jQuery est dans $ (document) .ready, mais je suppose que les polices ne retardent pas cela. Des idées quelqu'un?

+6

Avez-vous essayé $ (fenêtre) .load au lieu de document.ready? – Adam

+0

Merci Adam, c'était parfait. – Shaun

Répondre

16

La solution parfaite a été, comme Adam a fait remarquer, en utilisant $(window).load au lieu de $(document).ready

$(window).load(function(){ 
    $(".column").equalHeights(); 
}); 
+0

Cette méthode fonctionnait très bien dans Firefox mais n'avait aucun effet dans Chrome. A la fin, j'ai gardé '$ (document) .ready', puis j'ai placé ma fonction dans un setTimeout avec une durée de 0 (en réalité, cela fait environ 4ms - https://developer.mozilla.org/fr-fr/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout # Reasons_for_delays_longer_than_specified) – Ian

1

L'API de police Google semble fonctionner tant que vous chargez des polices depuis google, kitkit ou ascender. Mais si vous utilisez autre chose (par exemple une autre police téléchargée à partir de fontsquirrel), vous pouvez essayer quelque chose comme this pour comprendre la police en cours de rendu. Vous pouvez également consulter cette discussion sur la détermination de la police utilisée Changing Body Font-Size based on Font-Family with jQuery

Questions connexes