首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用FontAwesome 5.0SVGFramework时图标之间的切换

问使用FontAwesome 5.0SVGFramework时图标之间的切换
EN

Stack Overflow用户
提问于 2017-09-14 04:23:41
回答 9查看 23.3K关注 0票数 26

在使用新的FontAwesome SVG框架时,我希望能够在Javascript中的图标之间切换。

在以前的WebFont方法中,这是通过切换或更改标记上的类来实现的,但是由于这些类现在在源代码中呈现为SVG,这不再有效。

有没有一种不需要在源代码中同时呈现SVG图标和使用额外的类/CSS切换显示的方法?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2017-12-08 21:44:39

字体Awese5.0.0刚刚发布,从4.7到5.0的迁移破坏了我的javascript/jquery,当用户单击它时,将"fa-star-o“图标更改为"fa-star”。

我设法修复了它,所以我想和您分享以下两个技巧:

HTML中的图标:

代码语言:javascript
复制
<i class="foo fas fa-star"></i>

1)用jQuery更改图标(从“星星”更改为“闹钟”,反之亦然):

代码语言:javascript
复制
var icon = $('.foo');
var icon_fa_icon = icon.attr('data-icon');

if (icon_fa_icon === "alarm-clock") {
    icon.attr('data-icon', 'star');
} else {
    icon.attr('data-icon', 'alarm-clock');
}

2)用jQuery更改图标样式(从'fas‘改为'far'):

代码语言:javascript
复制
var icon = $('.foo');
var icon_fa_prefix = icon.attr('data-prefix');

if (icon_fa_prefix === 'fas') {
    icon.attr('data-prefix', 'far');

} else {
    icon.attr('data-prefix', 'fas');
}

希望这能帮助任何有同样问题的人。

票数 25
EN

Stack Overflow用户

发布于 2017-12-24 20:58:21

用FA 5.0.2验证

我修改了字体-Awesome的网站这里上的原始文档。他们网站上的选择器没有选择合适的元素,所以我们需要修改属性。

​

代码语言:javascript
复制
<div class='icon'><i class='far fa-minus-square'></i></div>

​

div的类并不重要,因为我们可以改变它。查看javascript,我们使用元素查找svg,特别是查找数据图标属性。一旦我们知道数据属性,我们就可以在每次点击数据属性时更改它。

所以在这个例子中,它从负平方开始。如果图标是负方形,它会将其更改为正方形。如果它不是正方形,它会把它改为负数。

JQuery

代码语言:javascript
复制
  document.addEventListener('DOMContentLoaded', function () {
    $('.icon').on('click', function () {
      if ($(this).find('svg').attr('data-icon') == 'minus-square' ) {
        $(this).find('svg').attr('data-icon', 'plus-square');
      } else {
        $(this).find('svg').attr('data-icon', 'minus-square');
      };
    });
  });

​

票数 13
EN

Stack Overflow用户

发布于 2018-03-22 15:12:46

假设您在fontawesome.js表中使用推荐的方法,我在正式文件上找到了以下内容

通过更改类更改图标:

代码语言:javascript
复制
<button>Open up <i class="fa fa-angle-right"></i></button>

<script>
  document.addEventListener('DOMContentLoaded', function () {
    $('button').on('click', function () {
      $(this)
        .find('[data-fa-i2svg]')
        .toggleClass('fa-angle-down')
        .toggleClass('fa-angle-right');
    });
  });
</script>
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46210501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档