2010-07-22 10 views
10

Ich habe ein Problem mit jQuery und @ font-Face.jQuery funktioniert falsch Höhe, wegen @ font-face

Ich muss die Höhe einer <div> erarbeiten, die gut funktioniert, aber dann gibt es eine kleine Verzögerung für die Schriftarten zu laden und sobald sie das tun, waren die @ font-face Schriftarten eigentlich größer als die Fallback Schriften, so ist die Höhe kleiner als es sein sollte.

Ich habe versucht, mit Modernizr, aber das ist nicht sinnvoll, da es nur erkennt, ob der Browser @ Font-Gesicht ist, nicht, ob die Schriftarten noch nicht geladen haben oder nicht.

Der jQuery-Code ist in $ (Dokument) .ready, aber ich denke, dass Schriften das Brennen nicht verzögern. Irgendwelche Ideen irgendjemand?

+6

Haben Sie $ verwendet wird (Fenster) .load versucht statt document.ready? – Adam

+0

Danke Adam, das war perfekt. – Shaun

Antwort

16

Die perfekte Lösung, wie Adam darauf hingewiesen, mit $(window).load statt $(document).ready

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

Diese Methode funktionierte gut in Firefox, hatte aber keine Auswirkungen in Chrome. Am Ende behielt ich '$ (document) .ready' und legte dann meine Funktion in ein setTimeout mit einer Dauer von 0 (in Wirklichkeit ist das ungefähr 4ms - https://developer.mozilla.org/en-US/docs/Web)/API/WindowOrWorkerGlobalScope/setTimeout # Gründe_für_Delays_langer_als_spezifiziert) – Ian

1

Die Google Schrift api sieht so aus, als ob sie Schriftarten von Google, Typekit oder Seilklemme laden würde. Wenn Sie jedoch etwas anderes verwenden (z. B. eine andere Schriftart, die von fontsquirrel heruntergeladen wurde), sollten Sie versuchen, etwas wie auszuprobieren, um die zu rendernde Schriftart herauszufinden. Sie können auch die Schriftart, diese Diskussion prüfen wollen Changing Body Font-Size based on Font-Family with jQuery