如何在Angular2中使用基本组件将动画应用于多个组件?

5

在我的应用程序中,当使用路由从菜单加载组件时,我想要使用一些动画效果。我已经成功地使用了 Angular 动画来实现这个目的。为了做到这一点,我必须将动画应用于每个组件。我需要知道是否有更好的方法将动画应用于一组组件或从特定基类继承的组件?

目前,我是这样应用我的动画的:

import { Component, OnInit } from '@angular/core';
import { routerTransition } from "../animations/animations";

@Component({
  selector: 'app-my-component',
  templateUrl: './my-component.component.html',
  styleUrls: ['./my-component.component.css'],
  animations: [routerTransition()],
  host: {'[@routerTransition]': ''}
})
export class BaseComponentComponent implements OnInit {

  constructor() { }

  ngOnInit() {
  }

}

动画代码,
import {trigger, state, animate, style, transition} from '@angular/core';

export function routerTransition() {
  return slideToLeft();
}

function slideToLeft() {
  return trigger('routerTransition', [
    state('void', style({position:'fixed', width:'100%'}) ),
    state('*', style({position:'fixed', width:'100%'}) ),
    transition(':enter', [  // before 2.1: transition('void => *', [
      style({transform: 'translateX(100%)'}),
      animate('0.5s ease-in-out', style({transform: 'translateX(0%)'}))
    ]),
    transition(':leave', [  // before 2.1: transition('* => void', [
      style({transform: 'translateX(0%)'}),
      animate('0.5s ease-in-out', style({transform: 'translateX(-100%)'}))
    ])
  ]);
}

我尝试的方法:

我尝试创建一个基础组件,在那里应用动画属性,并在其他需要的组件中扩展基础组件。之后,动画停止工作。

请告诉我我们是否可以重复使用动画而不将其应用于单个组件。

1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接