2010-07-22 4 views
10

Ho un problema con jQuery e @ font-face.jQuery risolve un'altezza sbagliata, a causa di @ font-face

Ho bisogno di calcolare l'altezza di un <div>, che funziona bene, ma poi c'è un piccolo ritardo per il caricamento dei caratteri e non appena lo fanno, i font @ font-face sono in realtà più grandi del fallback i caratteri, quindi l'altezza è più piccola di quanto dovrebbe essere.

Ho provato a utilizzare Modernizr, ma non è utile in quanto rileva solo se il browser è in grado di @ font-face, non se i font sono già stati caricati o meno.

Il codice jQuery è in $ (document) .ready, ma suppongo che i caratteri non ritardino l'attivazione. Qualche idea a qualcuno?

+6

Hai provato $ (window) .load invece di document.ready? – Adam

+0

Grazie Adam, è stato perfetto. – Shaun

risposta

16

La soluzione ideale è stata, come Adam sottolineato, usando $(window).load invece di $(document).ready

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

Questo metodo ha funzionato benissimo in Firefox ma non ha avuto alcun effetto su Chrome. Alla fine ho mantenuto '$ (document) .ready' e poi ho inserito la mia funzione in un setTimeout con una durata 0 (in realtà si tratta di circa 4ms - https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout # Reasons_for_delays_longer_than_specified) – Ian

1

Google font api sembra funzionare fintanto che carichi font da google, typekit o ascender. Ma se stai usando qualcos'altro (ad esempio un altro font scaricato da fontsquirrel) potresti voler provare qualcosa come this per capire il font che si sta facendo. Si consiglia inoltre di controllare questa discussione sulla determinazione del tipo di carattere utilizzato Changing Body Font-Size based on Font-Family with jQuery

Problemi correlati