<img class="group-icon" :class="group.opened ? 'group-icon-active' : ''" :src="require('@/assets/icon/' + group.icon + '.svg')" />
复制
// 默认样式 .group-icon { width: 16px; height: 16px; position: relative; left: -1000px; filter: drop-shadow($--gray 1000px 0); } // 激活样式 .group-icon-active { filter: drop-shadow($--color-primary 1000px 0); }
复制
此方法亲测有效,缺点是svg如果原本包含多色,会被处理成单色,比如我这里就都会变色灰色,点击后设置一个颜色,也只能是单色。
如果是比较有耐心,可以每个分组设置两个svg图片,一个是默认图片,一个是激活图片,就能保持svg多色性。