Редактировать: Наилучшим подходом, вероятно, является base64 кодирование ваших шрифтов . Это означает, что ваш шрифт должен быть полностью загружен к тому времени, когда ваш HTML будет проанализирован и отображен. Вы можете сделать это с помощью генератора шрифтов squirrel webfont https://www.fontsquirrel.com/tools/webfont-generator, нажав «Эксперт», а затем «base64 encode». Так работают такие сервисы, как TypeKit.
Оригинальный ответ:
Другой способ определить, загружены ли шрифты, - это использовать FontLoader https://github.com/smnh/FontLoader или скопировать их стратегию.
Они привязываются к событию прокрутки в браузере, потому что при загрузке шрифта он изменит размер текста. Он использует два элемента div (которые будут прокручиваться при изменении высоты) и отдельный запасной вариант для IE.
Альтернативой является периодическая проверка DOM с помощью setInterval
, но использование событий javascript намного быстрее и эффективнее.
Очевидно, вы могли бы сделать что-то вроде установки непрозрачности body на 0, а затем отобразить ее после загрузки шрифта.