ngIf e transições/animações CSS em Angular 2
Como deslizar uma div da direita usando CSS em Angular 2?
Notes
.transition{ -webkit-transition: opacity 1000ms ease-in-out,margin-left 500ms ease-in-out; -moz-transition: opacity 1000ms ease-in-out,margin-left 500ms ease-in-out; -ms-transition: opacity 1000ms ease-in-out,margin-left 500ms ease-in-out ; -o-transition: opacity 1000ms ease-in-out,margin-left 500ms ease-in-out; transition: opacity 1000ms ease-in-out,margin-left 500ms ease-in-out; margin-left: 1500px; width: 200px; opacity: 0; } .transition{ opacity: 100; margin-left: 0; }
Este código funciona bem se você apenas usar [ngClass] para alternar classes e aproveitar a opacidade. Mas não quero que esse elemento seja renderizado desde o início, então eu o "escondo" primeiro com ngIf, mas a transição não funcionará.
Atualização 4.1.0
usa a API de animação de transição, não é mais necessário usar [oculto] ou [*ngIf oculto].
Atualização 2.1.0
import { trigger, style, animate, transition } from '@angular/animations';
@Component({
selector: 'my-app',
animations: [
trigger(
'enterAnimation', [
transition(':enter', [
style({transform: 'translateX(100%)', opacity: 0}),
animate('500ms', style({transform: 'translateX(0)', opacity: 1}))
]),
transition(':leave', [
style({transform: 'translateX(0)', opacity: 1}),
animate('500ms', style({transform: 'translateX(100%)', opacity: 0}))
])
]
)
],
template: `
xxx
`
})
export class App {
show:boolean = false;
}
Resposta original
Quando a expressão se torna falsa, *ngIf removerá o elemento do DOM. Um elemento que não existe não pode ser transferido.
pode ser substituído pelo atributo oculto:
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3