angular - 角度动画和惊人的显示:无
问题描述
这段代码目前正在为我工作,但我通过反复试验和使用该stagger()
方法得到了这个解决方案。
有没有更清洁的方法来实现这一点?
理想情况下,我只使用一个,*ngIf
但元素图像很重,并且每次渲染元素时加载图像时,不透明动画都会不稳定。
最终我想要完成的是:
display: none + opacity: 0 -> display block + opacity: 1;
但是我知道这display
不能动画。所以我试图错开它none
在. 然后在不透明度动画之前opacity: 0
触发display: block
opacity: 1
trigger('fade', [
state('hidden', style({ display: 'none', opacity: 0 })),
state('shown', style({ display: 'block'})),
transition('shown => hidden', [
query(':self', [
animate('250ms ease')
])
]),
transition('hidden => shown', [
query(':self', [
animate('250ms ease'),
stagger(250, [
animate('250ms ease', style({ opacity: 1 }))
])
])
])
])
我在模板中调用它:
[@fade]="displayState === 'shown' ? 'shown' : 'hidden'"
解决方案
推荐阅读
- c# - jQuery 添加的 ASP.NET Core MVC 链接不起作用
- android-studio - Flutter 如何启动(创建项目时出错)
- sql - 在 Google Data Studio 或 SQL 中避免数据聚合中的“无穷大”
- python - 无论是否已在其他地方安装了副本,我都可以在 Windows 上本地安装 Python 吗?
- php - 未在 Ajax 请求上设置第三方 cookie
- azure - Azure AutoML Experiment 仍运行受阻算法
- python - Python 看不到机器包
- php - Laravel Google 回调 url 给出错误(“未找到”)
- javascript - JavaScript:比较 setTimeout() 匿名函数之前和之后的值
- python - 我正在使用 Python 制作一个简单的密码生成器,运行它时没有任何反应,但我也没有看到任何错误。我做错了什么?