Bunu elde etmek için angular2 animation API kullanabilirsiniz.
@Component({
selector: 'my-app',
template: `
<div class="container">
<div *ngFor="let item of items; let i = index" class="item" (click)="remove(i)"
[@anim]="item.state">
{{ item.name }}
</div>
</div>
<div class="aside">
<button (click)="push()">Push</button>
</div>
`,
animations: [
trigger('anim', [
transition('* => void', [
style({ height: '*', opacity: '1', transform: 'translateX(0)', 'box-shadow': '0 1px 4px 0 rgba(0, 0, 0, 0.3)'}),
sequence([
animate(".25s ease", style({ height: '*', opacity: '.2', transform: 'translateX(20px)', 'box-shadow': 'none' })),
animate(".1s ease", style({ height: '0', opacity: 0, transform: 'translateX(20px)', 'box-shadow': 'none' }))
])
]),
transition('void => active', [
style({ height: '0', opacity: '0', transform: 'translateX(20px)', 'box-shadow': 'none' }),
sequence([
animate(".1s ease", style({ height: '*', opacity: '.2', transform: 'translateX(20px)', 'box-shadow': 'none' })),
animate(".35s ease", style({ height: '*', opacity: 1, transform: 'translateX(0)', 'box-shadow': '0 1px 4px 0 rgba(0, 0, 0, 0.3)' }))
])
])
])
]
})
export class AppComponent {
items: any[] = [
{ name: 'Element 1' },
{ name: 'Element 2' }
];
push() {
this.items.splice(1, 0, { name: 'New element', state: 'active' });
}
remove(index) {
this.items.splice(index, 1);
}
}
Plunker Example Cevabınız ı ihtiyaç vardı neredeyse ne BrowserAnimationsModule
içe unutmayın ve kesinlikle bana mükemmel düşünün bir çözüm bulmak yardımcı oldu. Kaybettiğim anahtarlar, bunu bilmiyordum ** yükseklik: '*' ** bir şeydir. Öğeyi kaldırırken ve diziyi değiştirdiğinde (bu belki de gif üzerinde sıralanmış gibi görünüyordu, animasyonların paralel olmasını bekledim, ancak farklı sürelerle) jumpy animasyonunu ortadan kaldırmak için kenar boşluksuz geçişini ekledim. Çok teşekkürler ve işte benim [Plunker] (https://plnkr.co/edit/cjCXnuOCrNH9b2I7XnLD?p=preview) – abfarid
İşte yükseklik hakkında belgeler: * * "https://angular.io/docs/ts /latest/guide/animations.html#!#automatic-property-calculation – yurzui