Route animation for a single Component
Nothing will be perfect without animation, so lets see how you can target and write animations for entering and leaving from a component.
import { Component, HostBinding } from '@angular/core'
import { fadeInAnimation } from '../../app.animations'
import { trigger, state, style, animate, transition } from '@angular/animations'
@Component({
selector : 'vi-home',
templateUrl : 'home.component.html',
styleUrls : [
'home.component.scss'
],
animations: [
trigger('slideInAnimation', [
state('*',
style({
transform: 'translateX(0)'
})
),
transition(':enter', [
style({
transform: 'translateX(-100%)'
}),
animate('0.6s cubic-bezier(.35,0,.25,1)')
]),
transition(':leave', [
animate('0.6s cubic-bezier(.35,0,.25,1)', style({
transform: 'translateY(100%)'
}))
])
])
],
})
export class HomeComponent{
@HostBinding('@slideInAnimation') routeAnimation = true;
@HostBinding('style.display') display = 'block';
}