Mam aplikację internetową AngularJS 1.2.2 z <div>
, którą pokazuję/ukrywam na podstawie pewnej właściwości $scope
. Korzystając z modułu ngAnimate
, animuję pokazywanie i ukrywanie kamery <div>
.Poinformuj ngAnimate, aby animował tylko ngShow/ngHide
<div id="square" ng-show="showSquare" class="animate-shiny"></div>
Mam też klasy I chcesz umieścić na tej <div>
i do tego używam ngClass
.
<div id="square" ng-show="showSquare" class="animate-shiny" ng-class="{ cool: extraCool }"></div>
A tak się składa, że czasami klasa zostanie zastosowane w tej samej chwili, gdy jako <div>
jest pokazany/ukryte. Powoduje to, że animacja show/hide przestaje działać, podobno znajduje się ngClass
bardziej interesująca do animacji, mimo że nie chcę używać tej animacji jako ngAnimate
.
Here's a Plnkr that demonstrates the behavior. Kliknięcie przycisku pokaż/ukryj działa doskonale, klikając przycisk Utwórz fajne działa świetnie, ale przycisk, który łączy te dwa elementy, powoduje przerwanie animacji pokaz/ukryj.
Jak to naprawić? Czy mogę to zrobić bez ręcznego adresowania $animate
?
Z góry dziękuję!
To jest całkiem słodkie! – Beyers
Zobacz dokumentację na stronie http://docs.angularjs.org/api/ngAnimate, sekcja "użycie", pod wymienionymi dyrektywami: * "Więcej informacji o animacjach znajdziesz na stronie każdej z dyrektyw." * - to tam możesz znaleźć nazwy klas specyficzne dla danej dyrektywy, aby wywołać bardziej szczegółowe animacje. – kontur
Mimo że jest to dla mnie użyteczne, nadal istnieje pewne dziwne zachowanie. Jeśli zwolnię animację do czterech sekund, następnie pokaż kwadrat (pierwszy przycisk), a następnie zastosuj obie zmiany (ostatni przycisk) Nie widzę animacji dla fajnego efektu. Mój kwadrat zostanie animowany za pomocą 'ng-animate', ale klasa' .cool' nie zostanie już zastosowana z animacją. Nie wiem, dlaczego przejście zostało zdefiniowane poprawnie ... –