angular 2/5 页动画与 ui 路由器
angular 2/5 page animation with ui router
我尝试创建一个页面切换动画,但我找不到放置动画的位置。
我读过这个tutorial
如何制作动画并且效果很好,但它是基于组件的。这意味着我需要在每个组件中放置我的动画。
我也把它放在应用程序组件上,但是什么也没做。
有没有办法像在路由器中那样在一个地方完成它?
我正在使用 ui-路由器
您可以从@angular/animations创建动画。
您可以在@Component 中声明它们,例如:
animations: [
trigger('heroState', [
state('inactive', style({
backgroundColor: '#eee',
transform: 'scale(1)'
})),
state('active', style({
backgroundColor: '#cfd8dc',
transform: 'scale(1.1)'
})),
transition('inactive => active', animate('100ms ease-in')),
transition('active => inactive', animate('100ms ease-out'))
])
]
您必须设置和更新组件的状态,在您的情况下,是更大的框或包裹内容的div。
要将动画插入到组件中,您必须编写如下代码:
<div [@heroState]="hero.state">
<!-- Component content -->
</div>
有了这个和生命周期,您可以更新状态并使用它; angular 动画有点复杂,因为配置很大,但正因为如此,它们非常强大。
编辑:
使用后:
npm install @angular/animations@latest --save
要使用Angular 动画,条件是将它添加到当前或根模块:
@NgModule({
...
imports: [
// other modules removed for brevity
BrowserAnimationsModule
],
})
并将动画添加到组件中:
import { trigger,style,transition,animate,keyframes,query,stagger } from '@angular/animations';
我尝试创建一个页面切换动画,但我找不到放置动画的位置。
我读过这个tutorial 如何制作动画并且效果很好,但它是基于组件的。这意味着我需要在每个组件中放置我的动画。
我也把它放在应用程序组件上,但是什么也没做。
有没有办法像在路由器中那样在一个地方完成它?
我正在使用 ui-路由器
您可以从@angular/animations创建动画。
您可以在@Component 中声明它们,例如:
animations: [
trigger('heroState', [
state('inactive', style({
backgroundColor: '#eee',
transform: 'scale(1)'
})),
state('active', style({
backgroundColor: '#cfd8dc',
transform: 'scale(1.1)'
})),
transition('inactive => active', animate('100ms ease-in')),
transition('active => inactive', animate('100ms ease-out'))
])
]
您必须设置和更新组件的状态,在您的情况下,是更大的框或包裹内容的div。
要将动画插入到组件中,您必须编写如下代码:
<div [@heroState]="hero.state">
<!-- Component content -->
</div>
有了这个和生命周期,您可以更新状态并使用它; angular 动画有点复杂,因为配置很大,但正因为如此,它们非常强大。
编辑: 使用后:
npm install @angular/animations@latest --save
要使用Angular 动画,条件是将它添加到当前或根模块:
@NgModule({
...
imports: [
// other modules removed for brevity
BrowserAnimationsModule
],
})
并将动画添加到组件中:
import { trigger,style,transition,animate,keyframes,query,stagger } from '@angular/animations';