6

I think I have the basic animation part hooked up I just need to know what events to handle. Ideally I would like a solution that I could use at the navigation level so I could wrap all my components but a simple example of a page load would suffice and be much appreciated. I found several other questions on SO that are related but they do not appear to answer my specific question or are outdated:

Angular 2 "slide in animation" of a routed component Page transition animations with Angular 2.0 router and component interface promises

Here is what I have thus far:

html file

<article @heroState="componentState">
           <p>article element should fade in/out</p>
</article>

component

@Component({
    selector: 'blog-about',
    templateUrl: './app/about/about.html',
    animations: [
        trigger('heroState', [
            state('active', style({
                backgroundColor: 'blue',
                transform: 'scale(1)'
            })),
            state('inactive', style({
                backgroundColor: 'green',
                transform: 'scale(1.1)'
            })),
            transition('active => inactive', animate('1000ms ease-in')),
            transition('inactive => active', animate('1000ms ease-out'))
        ])
    ]
})
export class About implements OnInit, OnDestroy {
    public componentState: string;
    public Title: string

    constructor() {
        this.Title = "this is about";
    }

    ngOnInit()
    {
        this.componentState = 'inactive';
    }

    ngOnDestroy()
    {

    }
}
Community
  • 1
  • 1

1 Answers1

1

Are you sure you don't refer to the answer: https://stackoverflow.com/a/40077108/6678754 with plunker: https://embed.plnkr.co/Vral6cwlaQz27MUQNkVg/ ? That should work for you, check it again.

You have another option though: use the animation in the parent where you import your about component, like so:

<blog-about [@heroState]="activeRouteVar"></blog-about>
Brais Gabin
  • 5,827
  • 6
  • 57
  • 92
Marc Pérez
  • 293
  • 3
  • 9