Angular 2 “slide in animation” of a routed component

后端 未结 2 1929
星月不相逢
星月不相逢 2020-12-03 06:30

let\'s say I have 2 routed components and two Routerlinks in the fixed navbar to route them. I want them to slide in from the right when I click the Routerlinks.

I d

2条回答
  •  一整个雨季
    2020-12-03 07:02

    In terms of sliding in it is quite straightforward.

    You can reference to the Official Angular 2 Animate docs.

    You can also check out this Plunker I did for a simple showcase, using the new router v3

    Bear in mind that I am struggling to figure out how to actually have the leave/exit/void transitions when the triggered element is about to be destroyed from the view.

    I opened another thread in Angular 2 Animate - No visible effect of the '* => void' transition when changing routes/components to try to figure out how to make router take notice of the leaving animation/transition time.

    @Component({
      selector: 'home',
      directives: [ROUTER_DIRECTIVES],
      template: `
      
    `, styles: ['.radibre { width: 200px; height: 100px; background: red; }'], animations: [ trigger('flyInOut', [ state('in', style({transform: 'translateX(0)'})), transition('void => *', [ style({transform: 'translateX(-100%)'}), animate(100) ]), transition('* => void', [ animate(100, style({transform: 'translateX(100%)'})) ]) ]) ] }) export class Home { constructor() { } }
    @Component({
      selector: 'page',
      template: `
      
    `, styles: ['.page { width: 300px; height: 50px; background: green; }'], animations: [ trigger('testingBottom', [ state('active', style({transform: 'scale(1)'})), transition('void => *', [ style({transform: 'scale(0)'}), animate(100) ]), transition('* => void', [ animate(100, style({transform: 'scale(0)'})) ]) ]) ] })

提交回复
热议问题