Nuxtjs 项目使用 svg-sprite-loader 更改 svg 的颜色

本文介绍了在Nuxt.js项目中如何利用svg-sprite-loader解决SVG图标颜色变化的需求。在首次尝试使用两个不同状态的SVG图标替换导致的加载问题后,采用一次性引入所有SVG并创建SVG组件的方法,通过修改SVG的fill属性实现颜色动态变化,解决了体验问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

由于一些原因,最新的公司项目要使用的技术切换到了 Nuxt.js,也就是 Vue 的 ssr 服务端渲染框架。

项目需求

在新项目的开发过程中,遇到了一个需求:有一栏带 icon 的 tab,要实现鼠标悬浮和 tab 在激活状态下,icon 和文字一起改变颜色。

第一次开发

解决思路

在之前使用 svg icon,都是直接把它放进 img 里来使用的,也就是这样:

<img src='assest/svg/icon_xxx.svg' /> 

这样的形式。这次开发我第一时间想到的还是这样的引入形式,然后在鼠标悬浮和激活时,把其替换成 active 状态的 icon,也就是这样:

<img v-if="active" src='assest/svg/icon_xxx_active.svg' />
<img class="icon-xxx" v-else src='assest/svg/icon_xxx.svg' />
//...

<style lang="scss" scoped> .icon-xxx {&:hover {content: url(assets/svg/icon_xxx_active.svg);}
} </style> 

问题

由于激活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值