角2动画动画在相同时间我不所有元素想要那个
问题描述:
例如用于每个格或任何按钮进行动画元件I具有触发一些动画 我想动画的具体不在同一时间所有的动画
**,我不希望出现这种情况**
**我想,只有选择的元素被动画**
和这是代码
// ************************ home.component.ts ************************* //
import { Component, OnInit, trigger, state, style, animate, keyframes,
transition } from '@angular/core';
import { BrowserAnimationsModule } from '@angular/platform-
browser/animations';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.css'],
animations: [
trigger('focusPannel', [
state('inactive', style({
transform: 'scale(1)',
backgroundColor: '#eee',
})),
state('active', style({
position : 'fixed',
transform: 'translate(0px, 0px)',
top: '0px',
left: '0px',
backgroundColor: 'purple',
color : 'white',
width : '100vw',
height : '100vh'
})),
transition('inactive => active', animate('4000ms ease-in')),
transition('active => inactive', animate('4000ms ease-out'))
])
]
})
export class HomeComponent implements OnInit {
state: string = 'inactive';
constructor() { }
toggleMove() {
console.log('clicked');
this.state = (this.state === 'inactive' ? 'active' : 'inactive');
}
// this func take an event on click
gallery(id) {
alert(id);
}
ngOnInit() {
}
}
// ************** ********** home.component.html ************************* //
<div id="test" class="col s12 m4 l4 ">
<button (click)="toggleMove()" class="waves-effect waves-light
btn">Press me for animation</button>
</div>
<div class="content" (click)="toggleMove()" [@focusPannel]='state'>animated div 1</div>
<div class="content2" (click)="toggleMove()" [@focusPannel]='state'>animated div 2</div>
// ************************ home.component.css ****************** ******* //
.content{
padding: 20px;
background: #eeeeee;
position: absolute;
left: 300px;
}
.content2{
padding: 20px;
background: #eeeeee;
position: absolute;
left: 500px;
}
答
跟踪在单独的属性你的 “按钮状态”/对象
export class HomeComponent implements OnInit {
state: any = {
content: 'inactive',
content2: 'inactive'
}
constructor() { }
toggleMove(key: string /* for example */) {
this.state[key] = (this.state[key] === 'inactive' ? 'active' : 'inactive');
}
// other code
}
模板
<div class="content" (click)="toggleMove('content')" [@focusPannel]='state.content'>animated div 1</div>
<div class="content2" (click)="toggleMove('content2')" [@focusPannel]='state.content2'>animated div 2</div>
日Thnx TIEP您的帮助 – George