2016-10-11 7 views
0

Ich kann nicht meinen CSS-Übergang arbeiten, wenn die Eigenschaft aktualisiert werden soll, binden mit [ngstyle] oder [style.property]Angular 2 - css Übergang auf Element mit ngstyle

HTML:

<div class="bar" [style.width]="size +'%'"></div> 

CSS:

.bar{ width:0; transition: width .5s ease-out; } 

JS: Größe korrekt aktualisiert ...

Um sicher zu sein, wenn i-ten entfernen e style bindet in html und aktualisiert die Breite auf: hover, transition funktioniert. Vermisse ich etwas?

Wenn ich die [style.width] -Bindung machen und es für ex. mit einer Breite: 50%! wichtig, der Übergang funktioniert. Auch wenn es nicht das ist, was ich erreichen möchte, sieht es so aus, als ob ngStyle die Übergänge blockiert. Und! Wichtig ist erforderlich.

Aber das funktioniert nicht entweder:

[ngStyle]="{'width': size +'% !important'}" 

Antwort

1

mit diesem Setup haben Sie die Bindung von variabler Größe zu verzögern,

export class AppComponent{ 

    constructor(){ 
    setTimeout(()=>{ 
     this.size=20; 
    },1000) 
    } 

} 
+0

Ok, Übergang mit Ihrer Lösung auf diesem speziellen Fall funktioniert. Aber Größe in meinem Fall wird von 2 params innerhalb eines größeren Gegenstandes berechnet. Wenn ich die Einstellung dieses größeren Objekts verzögere, funktioniert es nicht. Wenn ich für jedes Kind bei einem Timeout eine neue Eigenschaft "Prozent" festlege, beginnt der Übergang bei jedem Update von 0 ... – sebap

+0

Aber nur die Größe der Variablen innerhalb von settimeout umbrechen. – micronyks

+0

Sonst müssen Sie angular2 Animation verwenden. – micronyks

Verwandte Themen