import { trigger, state, animate, transition, style, query } from '@angular/animations'; export const fadeAnimation = trigger('fadeAnimation', [ transition('* => *', [ query(':enter', [style({ opacity: 0 })], { optional: true }), query( ':leave', [style({ opacity: 1 }), animate('0.5s', style({ opacity: 0 }))], { optional: true } ), query( ':enter', [style({ opacity: 0 }), animate('0.5s', style({ opacity: 1 }))], { optional: true } ) ]) ]); export const slideAnimation = trigger('slideAnimation', [ transition('* <=> *', [ // Initial state of new route query( ':enter', style({ position: 'fixed', width: '100%', transform: 'translateX(-100%)' }), { optional: true } ), // move page off screen right on leave // query( // ':leave', // animate( // '500ms ease', // style({ // position: 'fixed', // width: '100%', // transform: 'translateX(-100%)' // }) // ), // { optional: true } // ), // move page in screen from left to right query( ':enter', animate( '500ms ease', style({ opacity: 1, transform: 'translateX(0%)' }) ), { optional: true } ) ]) ]);