【发布时间】:2019-07-18 15:53:33
【问题描述】:
我有一个列表,其中的项目有这样的动画:
<li @animation>
这是我的动画触发器:
trigger('animation', [
transition(':enter', [
style({ height: '0px', 'padding-top': '0', 'padding-bottom': '0'}), // initial
animate('0.5s',
style({ height: '*', 'padding-top': '*', 'padding-bottom': '*'})) // final
]),
transition(':leave', [
style({ height: '*', 'padding-top': '*', 'padding-bottom': '*', opacity: 1}), // initial
animate('0.5s',
style({ height: '0px', 'padding-top': '0', 'padding-bottom': '0', opacity: 0})) // final
])
])
我如何有条件地为特定项目打开/关闭此动画?实际上我在寻找某事。像这样:
<li [@animation]=item.isAnimated>
这根本不起作用。
不幸的是,Angular 文档中只有一句话:
对于进入或离开页面的元素(从 DOM),您可以使动画有条件。例如,使用 *ngIf 使用 HTML 模板中的动画触发器。
但是当我将动画注释与 *ngIf 结合使用时,未动画的项目显然根本不会显示:
<li *ngIf="item.isAnimated" @animation>
无论 isAnimated 标志如何,我都想进一步显示所有项目。我只想打开/关闭特定项目的动画。
【问题讨论】:
标签: angular angular-animations