Javascript 如何使用Angular2中的基础组件将动画应用于多个组件?
在我的应用程序中,当使用路由从菜单加载组件时,我想使用一些动画。我成功地用一个有角度的动画完成了它。我必须在单个组件中应用动画才能实现这一点。我需要知道是否有更好的方法将动画应用于一组组件或从特定基类继承的组件 目前我已经应用了我的动画,比如Javascript 如何使用Angular2中的基础组件将动画应用于多个组件?,javascript,angularjs,animation,inheritance,Javascript,Angularjs,Animation,Inheritance,在我的应用程序中,当使用路由从菜单加载组件时,我想使用一些动画。我成功地用一个有角度的动画完成了它。我必须在单个组件中应用动画才能实现这一点。我需要知道是否有更好的方法将动画应用于一组组件或从特定基类继承的组件 目前我已经应用了我的动画,比如 import { Component, OnInit } from '@angular/core'; import { routerTransition } from "../animations/animations"; @Component({
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%)'}))
])
]);
}
我的尝试:
我尝试创建一个基础组件,在那里应用动画属性,并在其他需要的组件中扩展基础组件。动画在那之后停止工作
请告诉我是否可以重复使用动画,而无需将其应用于单个组件。自4.2版以来,Angular支持通过动画DSL中较新的
query()
和stagger()
功能为多个元素制作动画
本文介绍了新功能: