【问题标题】:How to load a large amount of Google Web Fonts?如何加载大量谷歌网络字体?
【发布时间】:2014-01-30 06:20:36
【问题描述】:

有没有更好的方法将大量 Google 网络字体加载到单个页面中?

可能会在页面加载时延迟加载某些内容?或者可能只在用户向下滚动到特定点后加载某些字体?

我不禁想到有更好的方法来加载多种字体。将 2 或 3 放入 Google“字体集合”后,页面加载显然非常高。

我并不是想通过使用一堆字体进行设计而变得俗气,但我试图想出一种更好的方法来显示大量字体——有点像一本样本书。

我猜最好的例子是Myfonts 上的无限滚动。我知道这些字体不是使用网络字体显示的,但我认为应该有类似的方式来加载网络字体。我的意思是,谷歌如何在homepage 上加载所有这些字体?

【问题讨论】:

  • 我在想页面折叠上方可见的第一个字体会先加载,然后页面下方看不到的字体会稍后加载。
  • 请看下面的答案。看看是不是你想要的。 :D

标签: css font-face webfonts google-webfonts


【解决方案1】:

我不知道这是否适合您,但 Google Web Fonts 确实提供了一种 JavaScript 方法,您可以设置何时使用该字体。 (也许在页面加载完成后加载字体?)

试试直播demo

示例(使用字体Glass Antiqua):

<script type="text/javascript">
  WebFontConfig = {
    google: { families: [ 'Glass+Antiqua::latin' ] }
  };
  var YOURFUNCTION = function() {
    var wf = document.createElement('script');
    wf.src = ('https:' == document.location.protocol ? 'https' : 'http') +
      '://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';
    wf.type = 'text/javascript';
    wf.async = 'true';
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(wf, s);
  };

  //Maybe 10 seconds later?
  setTimeout(YOURFUNCTION, 10000);

  //Document Ready?
  $("body").ready(YOURFUNCTION);
</script>

演示:http://jsfiddle.net/DerekL/bkV7E/

【讨论】:

  • 太棒了!因此,现在您将其设置为定时延迟。如果我想在字体完全加载后显示它们,它会如何工作?
  • @davecave,加载完成后会自动使用字体。
猜你喜欢
  • 1970-01-01
  • 2011-10-17
  • 1970-01-01
  • 2012-10-04
  • 1970-01-01
  • 2011-11-18
  • 1970-01-01
  • 2012-02-16
  • 2011-07-08
相关资源
最近更新 更多