2016-10-15 20 views
18

Angular2 animasyon sistemini, sözde öğe :before için kullanmaya çalışıyorum. aşağıdaki gibiAngular2 canlandırma öğesi nesnesine animasyon bağlama

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')) 
])] 

ve daha sonra bir DOM öğesine ekleyin:

<ul> 
<li *ngFor="let hero of heroes" 
    [@heroState]="hero.state" 
    (click)="hero.toggleState()"> 
    {{hero.name}} 
</li> 

Ancak bu eklemek istediğiniz, animasyon akışı başına gelince, animasyon durumunu tanımlamak gerekir bir sözde before öğesi. Bunu nasıl yapabilirim?

+0

hakkında

Daha ben merak olursam CSS :: ares şey sonra [ngClass] buradan başına yapabileceğini :: öncesi ve: https://cssanimation.rocks/pseudo-elements/ gerçeği Sözde-elemanlar eklediğini söyler eğer işe yarayıp yaramayacağını merak ediyor. Eğer açısal animasyonlarla birleştirebiliyor olsanız da bir fikrim yok. Güzel soru. – JGFMK

+0

Bildiğim kadarıyla bu özellik mevcut değil. Bunun için bir özellik talebi var. https://github.com/angular/angular/issues/10196. Ancak bunu, sözde görünmek yerine yayılma gibi bir öğe ekleyerek yapabilirsiniz. Senin ihtiyacın sahte bir elemandan geçtiğini biliyorum ama onun varlığından beri. – rajesh

cevap

1

Bunu deneyin, lütfen bu ne istersen. Bu sizin için çalışır

<style> 
h1::before { 
    content: url(animation.html); 
} 
</style> 

animation.html dosyası

<ul> 
<li *ngFor="let hero of heroes" 
    [@heroState]="hero.state" 
    (click)="hero.toggleState()"> 
    {{hero.name}} 
</li> 

Umut. Bu Using Javascript in CSS

İlgili konular