vmware-clarity - 如何为图标设置动画?
问题描述
我在 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
推荐阅读
- jquery - owl carousel 跳转到特定幻灯片并为其添加类
- javascript - React Native Wix 日历标记日期显示错误
- asp.net - 需要在 MVC 中渲染部分视图以代替具有相同布局的另一个部分视图
- python - 我需要为 python pandas 中的缺失索引插入空值
- node.js - webpack 配置文件中没有定义插件
- reactjs - React-select 在 Laravel-mix 中没有显示价值
- python - VSTS 上的私人代理未触发代理作业
- python - Python 从目录导入模块
- sql-server - 如何使用 golang 导入 csv 并保存在 MSSQL 数据库中?
- angularjs - 角度基本表达式拆分