1.先做一个简单的例子
=> 
定义一个div 从open渐变成closed
ts:定义一个触发器 openClose,有两个状态 open 和 closed,均有对应的样式,再定义装换函数 transition
import { Component, OnInit} from '@angular/core';
// 动画函数
import { trigger, state, style, animate, transition } from '@angular/animations';
@Component({
selector: 'app-study',
templateUrl: './study.component.html',
styleUrls: ['./study.component.scss'],
animations: [
trigger('openClose', [
state('open', style({
height: '200px',
opacity: 1,
backgroundColor: 'yellow'
})),
state('closed', style({
height: '100px',
opacity: 0.5,
backgroundColor: 'green'
})),
transition('open => closed', [animate('1s')]),
transition('closed => open', [animate('0.5s')]),
]),
],
})
export class StudyComponent implements OnInit {
isOpen = true;
constructor() {
}
ngOnInit() {
}
toggle() {
this.isOpen = !this.isOpen;
}
}
html:@后面指定触发器 并赋值状态
<div [@openClose]="isOpen? 'open':'closed'" (click)="toggle()"> <p>The box is now {{isOpen?'Open':'Closed'}}!</p> </div>