Angular 动画离开过渡不适用于 ngIf
Angular Animation leave transition not working on ngIf
在 Angular 7 中,我正在制作动画扩展面板。我使用状态输入将不透明度从 0 更改为 1,将高度 0 更改为 *。休假时,我希望不透明度从 1 变为 0,高度从 * 变为 0。
我已经成功地制作了进入动画,但出于某种原因,我在休假时得到了一个有趣的结果。它几乎是先膨胀后收缩。我已经设置了一个 stackblitz 示例来更好地解释。
如何在展开时得到结果,点击我的按钮,不透明度从 1 变为 0,高度从 * 变为 0?
下面是我的动画代码。提前致谢!
animations: [
trigger('myAccordian', [
state('*', style({ opacity: 1, height: '*'})),
transition(':enter', [
style({ opacity: 0, height: 0}),
animate('1s ease-in')
]),
transition(':leave', [
style({ opacity: 0, height: 0}),
animate('1s ease-out')
])
])
]
如果您描述的是“*”状态 - 那么您还需要提供一些有关它在 void 状态下的外观的信息。另一种方法是直接描述输出样式,然后在动画内部处理完成样式。一个很好的例子可以在这里找到:Angular transition
trigger('myAccordian', [
transition(':enter', [
style({ opacity: 0, height: 0}),
animate('1s ease-in', style({ opacity: 1, height: '*' }))
]),
transition(':leave', [
style({ opacity: 1, height: '*'}),
animate('1s ease-out', style({ opacity: 0, height: 0 }))
])
])
在 Angular 7 中,我正在制作动画扩展面板。我使用状态输入将不透明度从 0 更改为 1,将高度 0 更改为 *。休假时,我希望不透明度从 1 变为 0,高度从 * 变为 0。
我已经成功地制作了进入动画,但出于某种原因,我在休假时得到了一个有趣的结果。它几乎是先膨胀后收缩。我已经设置了一个 stackblitz 示例来更好地解释。
如何在展开时得到结果,点击我的按钮,不透明度从 1 变为 0,高度从 * 变为 0?
下面是我的动画代码。提前致谢!
animations: [
trigger('myAccordian', [
state('*', style({ opacity: 1, height: '*'})),
transition(':enter', [
style({ opacity: 0, height: 0}),
animate('1s ease-in')
]),
transition(':leave', [
style({ opacity: 0, height: 0}),
animate('1s ease-out')
])
])
]
如果您描述的是“*”状态 - 那么您还需要提供一些有关它在 void 状态下的外观的信息。另一种方法是直接描述输出样式,然后在动画内部处理完成样式。一个很好的例子可以在这里找到:Angular transition
trigger('myAccordian', [
transition(':enter', [
style({ opacity: 0, height: 0}),
animate('1s ease-in', style({ opacity: 1, height: '*' }))
]),
transition(':leave', [
style({ opacity: 1, height: '*'}),
animate('1s ease-out', style({ opacity: 0, height: 0 }))
])
])