我正在从事一个个人项目,其中我有许多卡片,并且想垂直旋转它们多次并最终得到一张随机卡片。我正在 angular2 中重新创建我的项目,并且对如何为旋转设置动画有点迷茫。这是我目前所拥有的......
card.component.ts:
@Component({
selector: 'app-card',
styleUrls: ['./card.component.css'],
templateUrl: './card.component.html',
animations: [
trigger('spinCard', [
state('inactive', style({
transform: 'translateY(0px)'
})),
state('active', style({
transform: 'translateY(100%)'
})),
transition('inactive => active', animate('200ms ease-in-out')),
transition('active => inactive', animate('200ms ease-in-out'))
])
]
})
export class CardComponent {
@Input()
cardState: string;
}
card.component.html:
<div class="card {{cardStyle}}" [@spinCard]="cardState">
<div class="inside-text" id="{{cardId}}">{{cardName}}</div>
</div>
spinner.component.html:
<div class="spinner" id="spinner">
<div class="game-container">
<div class="game-overlay"></div>
<div class="game-area" id="game-area">
<app-card *ngFor="let card of (cards | spinnablePipe: true)" cardState={{cardState}} cardName={{card.name}} cardId={{cardId}} cardStyle={{cardStyle}}></app-card>
</div>
</div>
<div class="spin-layout">
<button type="button" class="spin-btn green-btn" aria-label="Spin" (click)="animateSpin()">
<span>S P I N</span>
</button>
</div>
在原生 JS 中,我只是简单地 requestAnimationFrame() 并通过 JS 更改 css 和 html。但是,我不太确定如何以 Angular 方式执行此操作。
我希望能够按下按钮,卡片会在容器内旋转,卡片会在随机卡片上停止。
到目前为止,我最好的想法就是在容器中添加 5 组相同的卡片并为其设置动画。我认为这不是一个正确的方法,而且我不确定如何随机化他们停止的位置。
希望得到一些帮助!谢谢!