L'animation de saisie fonctionne correctement, mais l'animation de congé ne fonctionne pas. Si je déplace le @modalFadeZoom vers parent les deux transitions fonctionne, mais le problème est que la mise à l'échelle ne se passe pas du centre du modal, ce qui donne une animation étrange.L'animation angulaire laisse la transition sur l'enfant div
Si je déplace @modalFadeZoom vers l'enfant, le fondu en zoom arrière fonctionne correctement. mais pas de fondu et de zoom avant la fermeture du modèle.
composant html
<div class="modal-dialog" *ngIf="showModal">
<div class="modal-content" [@modalFadeZoom]>
<div class="modal-header">
<h5 class="modal-title">SOME TITLE</h5>
<button type="button" (click)="showModal=false" class="close" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
lorem ipsum etc etc
</div>
</div>
</div>
<div class="modal-backdrop fade show" *ngIf="showModal"></div>
ts déposer
import { Component, OnInit, trigger, transition, style, animate } from '@angular/core';
@Component({
templateUrl: 'modal.template.html',
animations: [
trigger(
'modalFadeZoom',
[
transition(
':enter', [
style({ transform: 'scale(.7)', opacity: 0 }),
animate('0.3s', style({ opacity: 1, transform: 'scale(1)' })),
]
),
transition(
':leave', [
style({ opacity: 1, transform: 'scale(1)' }),
animate('5.3s', style({ opacity: 0, transform: 'scale(.7)' })),
]
),
])
]
})
export class ModalComponent implements OnInit {
private showModal = false;;
ngOnInit(): void {
this.showModal = true;
}
}
pour Dialoguer css modale
.modal-dialog {
position: fixed;
top: 50%;
left: 50%;
height: auto;
z-index: 2000;
transform: translateX(-50%) translateY(-50%);
}
lien plnkr
remarquez que j'ai déplacé l'animation à parent dans la démo plnkr l'animation commence à partir du centre, en raison de la mise à l'échelle.
https://plnkr.co/Ldn4wJwuZMaaunVWuYpx
Vous devriez probablement chercher dans la feuille de style les positions parent et enfant:. – Vega
@Vega j'ai mis à jour la question avec le CSS aussi – vito
Angular ne joue pas en laissant des animations pour les éléments qui sont des enfants dans un modèle * ngIf pour une raison quelconque. Essayez de déplacer l'animation vers le même élément que le modèle * ngIf. – Steveadoo