请教一个 naiveUI 彩色 icon 问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
weixiaoD
V2EX    Vue.js

请教一个 naiveUI 彩色 icon 问题

  •  
  •   weixiaoD 2024-05-04 13:24:55 +08:00 2017 次点击
    这是一个创建于 50 天前的主题,其中的信息可能已经有所发展或是发生改变。

    naiveUI 里的图标可以通过给 icon 添加属性 color 来修改 svg 图标的颜色 像这样

    af273af089bceaa4a1c6f.png

    <n-button> <template #icon> <n-icon color="red"> <HourglassOutline /> </n-icon> </template> </n-button> 

    后来我想要把这个颜色换成彩色动画,然后我去搜索了相关信息, 找到了一个修改 background 属性的方法...但是这不是我要的效果,我就是希望里面的那个图标渐变就好,我试过加一个 background-clip,加完之后就没效果了,图标变成黑色了,请问有什么好的方法可以实现我要的效果吗?

    573be8b069f6adc0fe192.gif

    <n-button> <template #icon> <n-icon class="Gradient"> <HourglassOutline /> </n-icon> </template> </n-button> 
    @property --colorA { syntax: '<color>'; inherits: false; initial-value: fuchsia; } @property --colorC { syntax: '<color>'; inherits: false; initial-value: #f79188; } @property --colorF { syntax: '<color>'; inherits: false; initial-value: red; } .Gradient { background: linear-gradient(45deg, var(--colorA), var(--colorC), var(--colorF)); animation: change 5s infinite linear; /* background-clip: text; */ } @keyframes change { 20% { --colorA: red; --colorC: #a93ee0; --colorF: fuchsia; } 40% { --colorA: #ff3c41; --colorC: #e228a0; --colorF: #2e4c96; } 60% { --colorA: orange; --colorC: green; --colorF: teal; } 80% { --colorA: #ae63e4; --colorC: #0ebeff; --colorF: #efc371; } } 
    xuchunyang
        1
    xuchunyang  
       2024-05-04 13:33:47 +08:00
    试试直接在 SVG 代码中调整
    LavaC
        2
    LavaC  
       2024-05-04 14:35:37 +08:00
    没用过 nativeUI ,如果这个 svg 是以 base64 形式存在于 background-image 上的话,可以将值赋予给 mask-image 做一个遮罩,再用背景覆盖。
    不过总的来说这个方法实现的效果很糙,最好还是直接从 svg 本身入手。
    ntedshen
        3
    ntedshen  
       2024-05-04 21:45:11 +08:00
    讲道理用 iconfont 多好。。。
    试试看 css3 的 mix-blend-mode ?
    wingzhingling
        4
    wingzhingling  
       2024-05-06 07:02:26 +08:00 via Android
    给 color 绑定一个变量,写个 setInterval 循环变换 color 的值,css 设置一下 transition 时间
    weixiaoD
        5
    weixiaoD  
    OP
       2024-05-15 19:06:24 +08:00 via Android
    @wingzhingling 这种只能设置单一色彩吧,不能渐变那种效果,像我 gif 那样
    weixiaoD
        6
    weixiaoD  
    OP
       2024-05-15 19:07:32 +08:00 via Android
    @xuchunyang 没接触过 svg 动画,哈哈,有空再看看
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     917 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 19:35 PVG 03:35 LAX 11:35 JFK 14:35
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86