【发布时间】:2017-02-28 13:14:11
【问题描述】:
我有一个表格行,在您单击其上方行上的“查看详细信息”按钮之前,该行不可见。目前我正在使用 *ngIf 来显示第二行并在单击“查看详细信息”按钮时更改绑定对象的布尔属性。我已经阅读了 angular2 文档上的动画页面,并尝试实现“折叠/展开”动画,以便当第二个表格行变得可见时,它的动画从 0px 高度 -> 完全展开的行的高度 (*px)。
我看到的最接近我想做的例子是这个动画,它将英雄从它的高度 (*px) 移除到 0px,并且它顺利地折叠/向上滑动。
animations: [
trigger('shrinkOut', [
state('in', style({height: '*'})),
transition('* => void', [
style({height: '*'}),
animate(250, style({height: 0}))
])
])
]
我无法在上述情况下使用它。我尝试将它与 *ngIf 结合使用,但没有奏效。 (该行就像添加动画之前一样立即打开/关闭。)我尝试摆脱 *ngIf 并绑定到 [hidden] 属性,但没有成功。我还尝试删除 *ngIf 和 [hidden] 并仅显示动画,但这也不起作用(该行只是保持打开状态而从未关闭。)
我的第二个表格行 HTML 看起来像:
<tr [@visibilityChanged]="visibility">
<td colspan="8" class="details-row">
...
</td>
</tr>
我的动画看起来像:
trigger('visibilityChanged', [
state('hidden', style({height: '*'})),
transition('* => void', [
style({height: '*'}),
animate(1000, style({height: 0}))
])
])
可见性变量是组件中的一个字符串,当单击查看详细信息按钮时,它会从“隐藏”变为“显示”,反之亦然。
我想要通过 angular 2 动画实现的目标可行吗?
【问题讨论】:
标签: angular angular2-animation