如何为图标设置动画?
How can I animate an icon?
我在 html 中有一个图标标签:
<clr-icon
[attr.shape]="open ? (iconOpen ? iconOpen : 'caret up') : (iconClose ? iconClose : 'caret down')"
></clr-icon>
我试过在 CSS 中应用过渡,如下所示:
clr-icon {
transition: all 2s ease-in-out;
}
但它没有动画。
通过写作:
<clr-icon [attr.shape]="open ? 'caret up' : 'caret down'"></clr-icon>
你不是绑定到方向,而是绑定到形状本身。这意味着每当 Angular 更新该绑定时,它都会强制图标重新呈现一个全新的形状。
你想要的只是简单地绑定方向,并保持形状不变:
<clr-icon shape="caret" [attr.dir]="open ? 'up' : 'down'"></clr-icon>
你可以在这里看到它工作正常:https://stackblitz.com/edit/clarity-animate-icon?file=src/app/app.component.html
我在 html 中有一个图标标签:
<clr-icon
[attr.shape]="open ? (iconOpen ? iconOpen : 'caret up') : (iconClose ? iconClose : 'caret down')"
></clr-icon>
我试过在 CSS 中应用过渡,如下所示:
clr-icon {
transition: all 2s ease-in-out;
}
但它没有动画。
通过写作:
<clr-icon [attr.shape]="open ? 'caret up' : 'caret down'"></clr-icon>
你不是绑定到方向,而是绑定到形状本身。这意味着每当 Angular 更新该绑定时,它都会强制图标重新呈现一个全新的形状。
你想要的只是简单地绑定方向,并保持形状不变:
<clr-icon shape="caret" [attr.dir]="open ? 'up' : 'down'"></clr-icon>
你可以在这里看到它工作正常:https://stackblitz.com/edit/clarity-animate-icon?file=src/app/app.component.html