Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

88
Visualizações
Angular2: dejar la animación sin aplicar

Tengo una aplicación Angular2 y estoy tratando de agregar una animación a mi enrutamiento, por lo que se desliza cuando cambio de página. La animación de entrada funciona bien, sin embargo, la animación de salida no se activa, la página anterior simplemente desaparece después de cargar la nueva página. ¿Alguien sabe la causa de este problema? golpeador

Según los documentos de anuglar2 , creo que mis transiciones son correctas.

 // transition(':enter', [ ... ]); // void => * // transition(':leave', [ ... ]); // * => void

archivo de animación

 export function routerTransition() { return trigger('routerTransition', [ transition('void => *', [ style({ transform: 'translateX(100%)' }), animate(1000) ]), transition('* => void', [ style({ transform: 'translateX(-100%)' }), animate(1000) ]) ]) }

niño_1.componente.ts

 import { Component } from '@angular/core'; import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms' import { Router } from '@angular/router'; import { Observable } from 'rxjs/Rx'; import { routerTransition } from '../../directives/router.animation'; @Component({ selector: 'about', template: require('./about.component.html'), styles: [require('./about.component.css')], animations: [routerTransition()], host: { '[@routerTransition]': '' } })

niño_2.componente.ts

 import { Component } from '@angular/core'; import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms' import { Router } from '@angular/router'; import { Observable } from 'rxjs/Rx'; import { routerTransition } from '../../directives/router.animation'; @Component({ selector: 'home-info', template: require('./home.component.html'), styles: [require('./home.component.css')], animations: [routerTransition()], host: { '[@routerTransition]': '' } })
about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Parece que hay dos problemas principales:

  1. La transición de salida se define de la misma manera que la transición de entrada, pero debe definirse de manera diferente para que el estilo especificado se use como el estado 'final' en lugar del estado 'inicio' de la transición.

     // Instead of transition('* => void', [ style({ transform: 'translateX(-100%)' }), animate(1000) ]) // Use transition('* => void', animate(1000, style({transform: 'translateX(-100%)', opacity: 0})) )
  2. Debe tener display:block (o inline-block ) en el host, ya que de lo contrario está en línea y la traducción solo funciona en bloques.

     // Instead of host: { '[@routerTransition]': '' } // Use host: { '[@routerTransition]': 'true', '[style.display]': "'block'", },

Aunque la animación probablemente no sea lo que desea, al menos es un punto de partida más o menos funcional: https://plnkr.co/edit/eFrjtTOtXkWp8IUeAYdo?p=preview

Aquí hay otro ejemplo de la gente angular: http://plnkr.co/edit/yJHjL5ap9l4MwOimCyyY?p=preview

about 4 years ago · Santiago Trujillo Relatório

0

Creo que deberías cambiar el código para la animación de la siguiente manera:

 export function routerTransition() { return trigger('routerTransition', [ state('void', style({position:'fixed', width:'100%'}) ), state('*', style({position:'fixed', width:'100%'}) ), transition('void => *', [ style({transform: 'translateX(-100%)'}), animate('0.5s ease-in-out', style({transform: 'translateX(0%)'})) ]), transition('* => void', [ style({transform: 'translateX(0%)'}), animate('0.5s ease-in-out', style({transform: 'translateX(100%)'})) ]) ]) }

Aquí hay un ejemplo Plunk

Nota: En Angular 4, las animaciones se sacaron de @angular/core y se incluyeron en el paquete, lo que le permite encontrar más fácilmente la documentación y aprovechar mejor el autocompletado.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda