I just want the view to fade in and out on route change. I have setup the component correctly it seems but need to get the animation syntax correct I think.
This is my current animation attempt. I import this animation to my component:
import {trigger, state, animate, style, transition} from '@angular/animations';
export function routerTransition() {
return fadeInAndOut();
}
function fadeInAndOut() {
return trigger('routerTransition', [
transition(':enter', [
style({opacity: 0}),
animate(3000, style({opacity: 1}))
]),
transition(':leave', [
animate(3000, style({opacity: 0}))
])
]);
}
This is one of my components importing the transition:
import { Component } from "@angular/core";
import { routerTransition } from "../../animations/fade.animation";
@Component({
selector: "about-users",
templateUrl: "./about.component.html",
animations: [routerTransition()],
host: { '[@routerTransition]': '' }
})
export class AboutComponent {
constructor() {
}
}
I found that you need to set the display to block for animations to work, like so:
@HostBinding('style.display') display = 'block';
Additionally, with the latest Angular, you need to use
HostBinding
instead ofhost
.Please see my complete file:
This works for me for the routing animation:
Typescript:
HTML:
DEMO