有没有办法在 Angular 中由 ngFor 生成的所有项目分别使用相同的动画?
Is there a way to separately use the same animation on all the items generated by ngFor in Angular?
所以我有一个 div 元素,我用 ngFor 循环它,并且对于每个元素我都有一些动画工作。
我遇到的问题是动画同时作用于所有元素,我希望它一次作用于一个项目。谁能帮我解决这个问题?
<div *ngFor="let product of products" @fadeIn>
Something in here...</div>
如果你想在下一个元素动画之前添加延迟,你可以使用 stagger method
您的代码变为:
HTML
<div [@fadeIn]="products.length">
<div *ngFor="let product of products">
Something in here...
</div>
</div>
TS
trigger('fadeIn', [
transition('* => *', [
query(':enter', [
style({ opacity: 0 }),
stagger(100, [
animate('0.5s', style({ opacity: 1 }))
])
])
])
])
所以我有一个 div 元素,我用 ngFor 循环它,并且对于每个元素我都有一些动画工作。
我遇到的问题是动画同时作用于所有元素,我希望它一次作用于一个项目。谁能帮我解决这个问题?
<div *ngFor="let product of products" @fadeIn>
Something in here...</div>
如果你想在下一个元素动画之前添加延迟,你可以使用 stagger method
您的代码变为:
HTML
<div [@fadeIn]="products.length">
<div *ngFor="let product of products">
Something in here...
</div>
</div>
TS
trigger('fadeIn', [
transition('* => *', [
query(':enter', [
style({ opacity: 0 }),
stagger(100, [
animate('0.5s', style({ opacity: 1 }))
])
])
])
])