2013-01-04 29 views
2

當定義一個custom字體與webfont loaderrepo here),我們基本上定義加載家屬和相關網址:加載多個重量自定義字體

WebFont.load({ 
    custom: { 
     families : [ "My font" ], 
     urls  : [ "assets/css/fonts.css" ] 
    } 
}); 

但是,似乎裝載機不要」噸檢測多個weightcss文件相同的字體定義:

@font-face { 
    font-family: 'My font'; 
    src: url("../fonts/my-font.eot"); 
    font-weight: normal; 
    font-style: normal; 
} 

@font-face { 
    font-family: 'My font'; 
    src: url("../fonts/my-font.eot"); 
    font-weight: bold; 
    font-style: normal; 
} 

因此,加載器觸發事件​​active當第一FO nt被加載。

WebFont.load({ 
    fontactive: function(fontname, fontdescription) { 
     console.log(fontname, fontdescription); 
     // Only trigger once `My font, n4` 
    } 
}); 

那麼,有沒有辦法告訴web字體裝載有多個重量獲得(有點像他們的谷歌網絡字體界面):這可如果我們檢查fontactive事件誰只會觸發一次被確認了嗎?

(A修復可以爲使用多個名稱爲每個字體粗細,但是這不是我在尋找這裏的解決方案)

+0

您確定只有在加載了* both *權重後纔會觸發一次啓動事件嗎?在我的測試中,字體的常規和粗體重量都被加載,並且加載回調只是一次。 –

回答

5

我的webfontloader的開發商之一。你是正確的,自定義模塊不支持加載多個變體。幸運的是,我們最近增加了對此的支持,所以如果您升級您的webfontloader版本(或使用Google CDN上的版本),您將獲得對它的支持。

你可以用它喜歡:

WebFont.load({ 
    custom: { 
    families: ['My Font', 'My Other Font:n4,i4,n7'], 
    urls: ['/fonts.css'] 
    } 
}); 

要加載 'N4', '12-14' 和 'N7' 「我的其他字體」 的變體。