我正在制作动画:输入和:离开页面 .

import { animate, AnimationEntryMetadata, state, style, transition, trigger } from '@angular/core';

export const slideInDownAnimation: AnimationEntryMetadata = trigger('routeAnimation', [
    state('*',
        style({
            transform: 'translateY(0)'
        })
    ),
    transition(':enter', [
        style({
            transform: 'translateY(100%)'
        }),
        animate('.5s linear')
    ]),
    transition(':leave', [
        animate('.5s linear', style({
            transform: 'translateY(-100%)'
        }))
    ])
]);

在组件中:

import { slideInDownAnimation } from './../route-animation/animations';
import { Component, OnInit, HostBinding } from '@angular/core';

@Component({
  selector: 'app-building',
  templateUrl: './building.component.html',
  styleUrls: ['./building.component.scss'],
  animations: [
    slideInDownAnimation
  ]
})
export class BuildingComponent implements OnInit {

  @HostBinding('@routeAnimation') routeAnimation = true;
  @HostBinding('style.display') display = 'block';
  @HostBinding('style.position') position = 'absolute';

  constructor() { }

  ngOnInit() {
  }
}

这个动画在几个组件中重用 .

在每个组件中都有一个按钮,可以使用相同的动画转到下一页 .

我需要使用动画为这些组件创建通用条件,以便动画仅在按下这些按钮时才起作用 . 可以借助某种共同的服务 .

每次进入动画页面时,此动画都有效,我只需要在单击这些按钮时动画才能工作 .