Wie kann ich das laden einer web-font wie font awesome auf die Seite laden?
Diese Frage gilt für Situationen, in denen die web-font ist nicht erforderlich, auf der Hauptseite und wird zunächst innerhalb einer div
eingestellt display:none;
Ich habe eine web-Seite lädt, die eine versteckte form per Javascript beim klicken und dieses Formular verwendet eine web-schriftart. Mein Problem ist, dass es in einer Sekunde Verzögerung, wenn der Benutzer auf, zu offenbaren, form, wie es in diesem moment Chrome lädt die woff2
Datei.
Ist das nicht sehr schön für die user experience.
Brauche ich zum laden der webfont da ich keine Verwendung für die Schrift auf der Hauptseite, es gibt also nichts zu verursachen Chrome zu Holen, die woff2
- Datei, bevor der Benutzer klickt, um den ausgeblendeten Formular.
Bemerkte ich, dass dies egal ist, wenn Sie hosting der Font Awesome auf Ihrem server oder mit dem CDN.
Ich schaute mich im internet um, um zu sehen, was getan werden könnte, ich habe versucht, alle unten, und keiner hat es geholfen, nichts verursacht die woff2
- Datei zu laden, die beim laden der Seite, ist es immer nur geladen, wenn die Webseite aktiv benötigt die schriftart.
Versuch 1: Vorspannung
<link rel="preload" href="form/font-awesome-4.5.0/fonts/fontawesome-webfont.woff2">
oder
<link rel="preload" href="form/font-awesome-4.5.0/fonts/fontawesome-webfont.woff2" as="font">
Versuch 2: Prefetch
<link rel="prefetch" href="form/font-awesome-4.5.0/fonts/fontawesome-webfont.woff2">
Versuch 3: CSS -
@font-face {
font-family: 'Font-Awesome';
src: url('form/font-awesome-4.5.0/fonts/fontawesome-webfont.woff2') format("woff2");;
}
Als ich sah mich um, begann ich zu sehen, mögliche Lösungen mit Javascript-basierte laden, so etwas möchte ich wirklich nicht in die Nähe gehen, also, was sind meine Optionen hier?
- welcher browser sind Sie das testen in?
- Chrome Version 47.0.2526.111 m
Du musst angemeldet sein, um einen Kommentar abzugeben.
Landete ich mit dieser einfachen Lösung, es wurde noch nicht getestet auf etwas anderes als Chrome, aber es ist ziemlich einfach für meinen Anwendungsfall, ich kann mir nicht vorstellen, dass es nicht funktioniert auf jedem modernen browser.
Entschied ich mich zu zwingen, laden Sie die
woff2
- Datei durch das laden einer schriftart auf mein Haupt-Seite, sondern gewährleisten, dass Benutzer können es nicht sehen.Als ich schon entdeckt, Chrome nicht zu Holen Ressourcen, die erforderlich sind, von jeder
div
zumdisplay:none;
So, hier ist meine Lösung statt.
CSS
HTML
Nun der browser lädt die
woff2
Ressource auf der Seite geladen, so dass, wenn meine Anwender auf eine Schaltfläche klicken, um den ausgeblendeten Formular, das web font lädt sofort.brauchen Sie keine versteckten div, um Ihre schriftart zu arbeiten. Solange Sie mit einem unterstützten browser (Bild von w3schools) die css -
@font-face
Regel sollte funktionieren.Außerdem können Sie weitere Schriftformate wie folgt:
woff2
Datei bei meinen tests.div-hidden
Klasse von der zweiten form, und es ist auf diesem Formular, dass ich mit Font Awesome. Das ist mein Problem, die Schriftart Awesome ist es nicht notwendig, bis ich das einblenden der form (ich bin mit dem Font Awesome für die check-Boxen). Es ist alles auf der gleichen Seite, aber Chrome lädt keinewoff2
- Datei, bis mein jQuery blendet das Formular aus. Dadurch ergibt sich eine sehr hässliche Verzögerung. Jedoch wird keine Seite neu laden tritt, ist es, alle auf der gleichen Seite.woff2
Datei, bis die form wurde sichtbar. Ich könnte versuchen, @font-face im Firefox zu sehen, ob das funktioniert dort.Könnten Sie versuchen, mithilfe von Web Font Loader: https://github.com/typekit/webfontloader