Angular:轻弹(半弹)动画
Angular: Flick (half flip) animation
我的卡片有正面和背面的垂直翻转动画
animations: [
trigger('cardFlick', [
state('0', style({
transform: 'none'
})),
state('1', style({
transform: 'rotateX(-180deg)'
})),
transition('0 => 1', [
animate('400ms')
]),
transition('1 => 0', [
animate('400ms')
])
])
]
但我想做的是制作卡片动画。我的意思是卡片不会完全翻转而是半翻转,更改卡片上的内容,然后翻转回来显示背面。当然,这意味着我的卡片只有一个面,我可以在其中切换内容。我该怎么做?
在我之前的尝试中,问题始终是 ngIf 太快而破坏了动画。如何延迟 ngIf 或先播放第一个动画状态然后让 ngIf 切换内容再翻转?
您可以在动画结束时通过绑定 (@cardFlick.done)
.
将动画事件 done 用于 运行 一些代码
例如:
<div [@cardFlick]="flicked ? '1' : '0'" (@cardFlick.done)="showFront =!showFront">
<p *ngIf="showFront">front</p>
<p *ngIf="!showFront">back</p>
</div>
我的卡片有正面和背面的垂直翻转动画
animations: [
trigger('cardFlick', [
state('0', style({
transform: 'none'
})),
state('1', style({
transform: 'rotateX(-180deg)'
})),
transition('0 => 1', [
animate('400ms')
]),
transition('1 => 0', [
animate('400ms')
])
])
]
但我想做的是制作卡片动画。我的意思是卡片不会完全翻转而是半翻转,更改卡片上的内容,然后翻转回来显示背面。当然,这意味着我的卡片只有一个面,我可以在其中切换内容。我该怎么做?
在我之前的尝试中,问题始终是 ngIf 太快而破坏了动画。如何延迟 ngIf 或先播放第一个动画状态然后让 ngIf 切换内容再翻转?
您可以在动画结束时通过绑定 (@cardFlick.done)
.
例如:
<div [@cardFlick]="flicked ? '1' : '0'" (@cardFlick.done)="showFront =!showFront">
<p *ngIf="showFront">front</p>
<p *ngIf="!showFront">back</p>
</div>