【问题标题】:Using Font-awesome icons dynamically does not work with the SVG & JS implementation动态使用 Font-awesome 图标不适用于 SVG 和 JS 实现
【发布时间】:2018-10-09 21:57:43
【问题描述】:

所以我在他们的 v5 图标上使用了 font-awesome 的新 JS&SVG 实现。对于页面加载时 DOM 中存在的图标(例如 <i class='fas fa-home'></i>),该实现工作正常,并且 <i> 标签被替换为 <svg> 标签。

当我在某些 HTML 服务器端加载并将其插入 DOM 时出现问题,<i> 标签未转换,因此不显示图标。我找不到可以在我的 JS 中使用的任何方法(例如在将内容添加到 DOM 之后)来“重新实例化”JS 实现以将 SVG 图标加载到位。

有人遇到过这个问题吗?

【问题讨论】:

    标签: javascript ajax svg font-awesome


    【解决方案1】:

    我就是这样使用它,即使在“加载后”的 html 部分上也能很好地工作。

    我的fontawesome.js 是这样的:

    import { library, dom, config } from '@fortawesome/fontawesome-svg-core';
    
    config.autoReplaceSvg = true;
    config.observeMutations = true; // <- this is what you need the most
    
    import { faUser } from '@fortawesome/free-solid-svg-icons/faUser';
    import { faFacebook } from '@fortawesome/free-brands-svg-icons/faFacebook';
    
    library.add(faUser, faFacebook);
    
    // And this is important too
    // Replace any existing <i> tags with <svg> and set up a MutationObserver to
    // continue doing this as the DOM changes.
    dom.watch();
    

    ...然后我在我的vendors.js 中需要这个fontawesome.js

    文档中提到了它不适合您的原因:

    不同的默认配置
    Font 时默认开启 DOM 监视 Awesome 是从 @fortawesome/fontawesome-free@fortawesome/fontawesome-pro 但它已被禁用 @fortawesome/fontawesome-svg-core.

    这里有一些关于configurationwatching the domsvg-javascript-core 的有用链接

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-06
      • 1970-01-01
      • 2018-10-10
      • 1970-01-01
      • 2019-06-04
      • 2014-07-06
      • 2019-09-13
      • 2019-04-10
      相关资源
      最近更新 更多