<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多色性。