【发布时间】:2016-06-28 20:36:43
【问题描述】:
我有一个组件从服务器获取项目列表,然后在模板中使用 *ngFor 显示该列表。
我希望列表显示一些动画,但一个接一个。我的意思是每个列表项都应该一个接一个地动画。
我正在尝试这样的事情:
import { Component, Input, trigger, state, animate, transition, style } from '@angular/core';
@Component({
selector: 'list-item',
template: ` <li @flyInOut="'in'">{{item}}</li>`,
animations: [
trigger('flyInOut', [
state('in', style({ transform: 'translateX(0)' })),
transition('void => *', [
style({ transform: 'translateX(-100%)' }),
animate(100)
]),
transition('* => void', [
animate(100, style({ transform: 'translateX(100%)' }))
])
])
]
})
export class ListItemComponent {
@Input() item: any;
}
在我的列表组件模板中,我正在使用它:
<ul>
<li *ngFor="let item of list;">
<list-item [item]="item"></list-item>
</li>
</ul>
它的作用是一次显示整个列表。我希望项目通过一些动画一个一个地进入。
【问题讨论】:
-
对我来说完全一样的行为!你找到解决办法了吗?
-
还没有,但似乎有了 Angular 2 中的新动画模块,现在应该不难了。我们可以为列表项创建一个组件,然后附加进入和离开的动画。检查angular.io/docs/ts/latest/guide/animations.html
-
我看到了,谢谢!我的解决方案是在动画的每个元素之间设置一个超时时间,这样所有 LI 元素都可以通过动画顺利进入
-
看看stackoverflow.com/questions/37880525/…。交错尚未实现。
标签: angular typescript angular2-template angular2-services