iconfont svg不显示_svg踩坑实录(上)

在开发个人理财项目时,遇到导航栏中SVG图标显示异常的问题。图标库引入的SVG图标在未被点击时错误地高亮显示,颜色不符合预期。通过检查源文件,发现SVG图标含有`is-active`属性导致此问题。为避免手动逐一删除属性,作者寻求自动化解决方案,最终找到方法,能批量删除所有SVG图标中的`is-active`属性,从而高效解决了问题。
摘要由CSDN通过智能技术生成
点赞再看,养成习惯,你们的支持是我持续分享的最大动力( ^▽^)

最近我在开发一个个人理财项目,当我做到导航栏的时候,发现了一个bug

9488d6b740cbbcc561fded72e43700a8.png

先对上图做一个描述:moneylabelsstatistics三个icon都是我从iconfont引入的svg图标,当我导航到不同的页面时,所对应的icon也会高亮显示。

从上图你可以看到,我明明导航到了money页面,为什么labels页面的图片也会高亮呢,而且高亮的颜色并不是我所设置的黄色,这显然不是我想要的效果。

于是我开始查找问题到底出在哪里。

排查完所有的scss文件及相关配置之后,我将问题的锁定在了 svg 源文件上。

接下来我仔细阅读了 该svg 所对应的源文件,果不其然,labels这个svg图片的源码中带有一个fill属性,正是这个属性让还未被点击icon高亮。

4f7c32020e44d8f5d020bd5e696af336.png

既然发现了问题,那么接下来就要解决这个问题。

有人说,那你这个问题解决还不简单嘛,直接把 fill 属性删了不就好了。

这个简单粗暴的方法在某种程度上也是可以解决问题的,但是,如果引入了100svg甚至更多,里面都带有fill属性的icon,你难道还要一个一个的查找进行删除吗?

这种操作显然不是一个高级程序员处理问题的方式。

那应该怎么处理?

能不能写一段代码,自动的把所有svg图片里面的fill属性删除?

下面就是我花了两个小时搜遍我所能找到的所有资料得到的答案。

.use('svgo-loader').loader('svgo-loader')
      .tap(options => ({...options, plugins: [{removeAttrs: {attrs: 'fill'}}]})).end()

谢谢你看到了最后,希望遇到此类问题的小伙伴都能快速的解决此类问题,不要再去踩踩踩坑啦。

告诫自己,即使再累也不要忘记学习,成功没有捷径可走,只有一步接着一步走下去。 共勉!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值