Ich versuche, die neue ng-animate-Direktive zu verwenden, und kämpfe darum, den gewünschten Effekt zu erhalten, wenn ich mit einer ng-Wiederholung arbeite. Ich versuche, Gegenstände beim Betreten wachsen zu lassen und beim Verlassen zu schrumpfen. Bisher funktioniert die Eingabetaste, aber die Schrumpfanimation schlägt fehl.
Ich habe hier eine Geige aufgestellt, damit Sie mein Problem sehen können: -
Das relevante HTML ist: -
%Vor%Und das relevante CSS: -
%Vor%Weiß jemand, wo ich falsch gelaufen bin?
Danke,
Ryan
ps gerade bemerkt in IE 10 keine Animationen funktionieren! Ich teste gerade in Chrome
Sie müssen die erste Zeile der CSS umschalten, um die "Start" -Klassen anstelle der Setup-Klassen zu beeinflussen. Ich weiß, so machen sie das nicht, aber es wird funktionieren. Also mach es:
%Vor%Dies hilft, weil Sie versuchen, eine Eigenschaft zu animieren, die das Element normalerweise nicht besitzt. In Elementen wird die Eigenschaft "max-height" normalerweise nicht festgelegt. Wenn Sie also gleichzeitig mit dem Übergang eine maximale Höhe anwenden, wird dadurch die Tatsache animiert, dass Sie die Eigenschaft hinzugefügt haben! Dies ist bevor die "Start" -Klasse überhaupt angewendet wird, was bedeutet, dass die Setup-Phase nicht beendet wird (da die Animation 1 Sekunde dauert), bevor die Startphase beginnen soll. Wenn Sie also die "Verlassen" -Animation anwenden, werden die folgenden Schritte ausgeführt.
Aber wenn wir die Übergangseigenschaft von "setup" -step auf "start" -step verschieben, wie in der obigen css, wird Schritt 3 sofort sein, da es keinen Übergang hat. Der Übergang erscheint zuerst in Schritt 4. So haben wir:
Sie haben dieses Problem mit der Deckkraft nicht, da Sie mit dem Standardwert 1 animieren. Es gibt keine Animation, die Sie in Schritt 3 stören könnten. Es scheint auch so, dass die Eingabeereignisse ein wenig anders gehandhabt werden, als sie sind Es ist wahrscheinlicher, dass Sie von einem nicht standardmäßigen Wert animieren, sodass Sie dieses Verhalten nicht bei allen Ereignissen sehen.
Bearbeiten:
Ich experimentierte ein bisschen mehr damit und es stellt sich heraus, dass meine Antwort nicht für Firefox funktioniert (zumindest nicht für FF Windows). Zuallererst scheint FF gerade fehlzuschlagen, wenn Sie eine nicht existierende Eigenschaft animieren, also müssen Sie sicherstellen, dass Ihre Elemente von Anfang an eine maximale Höhe haben, etwa wie folgt:
%Vor%Das behebt mich, aber aus irgendeinem Grund funktioniert überhaupt keine Animation in Firefox unter Windows. Ich versuche immer noch, das herauszufinden.
Die angenommene Antwort ist jetzt ein bisschen veraltet, aber es war immer noch sehr hilfreich, da ich das gleiche Problem bearbeitet habe. Hier sehen Sie ein Beispiel für eine Expand / Collapse-Funktion mit den neuesten Versionen von ng-animate und dem limitTo
-Filter für ng-repeat
:
HTML:
%Vor%CSS:
%Vor%Tags und Links angularjs angularjs-ng-repeat