【问题标题】:Dynamically load web font动态加载网页字体
【发布时间】:2015-12-08 03:07:35
【问题描述】:

我是这个网络字体的新手。我了解可以从 URL 下载某种字体并在网页中使用。

我的问题是:是否可以根据用户输入动态加载网络字体?简单的场景:用户在文本字段中输入一些文本并选择尚未加载的字体名称。触发一些 javascript 代码以动态加载 Web 字体资源。这可能吗?

【问题讨论】:

标签: javascript css fonts loading webfonts


【解决方案1】:

试试这个(谷歌网络字体):

<span>Select font:</span>
<select onchange=fontSelected(event)>
    <option value="default">Browser Default</option>
    <option value="Droid+Sans">Droid Sans</option>
    <option value="Open+Sans">Open Sans</option>
</select>
<h1 id="theText">This is a sample text...</h1>

function fontSelected(e){
    var select = e.target;
    if (select.selectedIndex > 0) { // web font
        var fontID = select.options[select.selectedIndex].value;
        if (!document.getElementById(fontID)) {
            var head = document.getElementsByTagName('head')[0];
            var link = document.createElement('link');
            link.id = fontID;
            link.rel = 'stylesheet';
            link.type = 'text/css';
            link.href = 'http://fonts.googleapis.com/css?family='+fontID;
            link.media = 'all';
            head.appendChild(link);
        }
        document.getElementById("theText").style.fontFamily = select.options[select.selectedIndex].innerHTML;
    }else{ // default browser font
        document.getElementById("theText").style.fontFamily = null;
    }
}

http://jsfiddle.net/zejz2tkp/1/

此代码基于此帖子:http://amirush.blogspot.ro/2013/07/dynamic-loading-of-web-fonts.html

您也可以使用现有答案之一:Load external font with javascript and jquerydynamically load fonts html jquery

【讨论】:

    猜你喜欢
    • 2013-05-09
    • 2017-06-10
    • 2016-01-13
    • 2012-10-07
    • 2013-05-30
    • 2016-11-05
    • 2018-02-06
    • 2012-10-25
    • 1970-01-01
    相关资源
    最近更新 更多