Решение 1:
Вы можете отключить анимацию, используя:
@HostBinding('@.disabled')
public animationsDisabled = false;
Этот набор для вашего компонента css класс: ng-animate-disabled
См. Пример здесь , установив флажок «Переключить все анимации»
Решение 2: Чтобы избежать одновременной анимации, вы можете использовать sequence () для запуска анимации в заданном порядке.
trigger('slideInOut', [
transition('* => *', [
sequence([
query(':enter', [
style({transform: 'translateY(-100%)'}),
animate('200ms ease-in', style({transform: 'translateY(0%)'}))
], {optional: true}),
query(':leave', [
animate('200ms ease-in', style({transform: 'translateY(-100%)'}))
], {optional: true})
])
])
])
При этом будут запущены первые анимации, а вторая - анимация. Измените порядок в массиве, если вы хотите использовать обратную последовательность.
Убедитесь, что вы пометили родительский элемент @slideInOut
, а не элементом item.
<parent @slideInOut>
<ion-item color="primary" *ngIf="openElement1" lines="none">
</ion-item>
<ion-item color="primary" *ngIf="openElement2" lines="none">
</ion-item>
</parent>