Używam moduł ngAnimate, ale wszystkie moje ng-if
, ng-show
itp, są dotknięte, że chcę wykorzystać ngAnimate dla wybranych elementów. Ze względu na wydajność i kilka błędów w elementach, które pokazują i ukrywają się bardzo szybko.
dzięki.
angularjs
ng-animate
drtobal
źródło
źródło
display:block
na wszystkich twoich przemiennikach:ng-hide-add-active, .ng-hide-remove { display: block!important; }
Odpowiedzi:
Po prostu dodaj to do swojego CSS. Najlepiej, jeśli jest to ostatnia zasada:
następnie dodaj
no-animate
do klasy elementu, który chcesz wyłączyć. Przykład:źródło
.no-animate, .no-animate-children *
regułę dotyczącą dzieci itp.Jeśli chcesz włączyć animacje dla określonych elementów ( zamiast wyłączać je dla określonych elementów), możesz użyć $ animateProvider do skonfigurowania elementów o określonej nazwie klasy (lub wyrażeniu regularnym) do animacji.
Poniższy kod włączy animacje dla elementów posiadających
angular-animate
klasę:Oto przykładowe znaczniki zawierające
angular-animate
klasę włączającą animacje:Przykład Plunkera zapożyczony i zmodyfikowany z tego bloga, gdzie tylko pierwszy filtr zawiera animacje (ze względu na posiadanie
angular-animate
klasy).Zwróć uwagę, że używam
angular-animate
jako przykładu i jest on całkowicie konfigurowalny za pomocą.classNameFilter
funkcji.źródło
/^(?:(?!ng-animate-disabled).)*$/
wyrażenia regularnego, aby wyłączyć anulowanie zng-animate-disabled
klasą.Istnieją dwa sposoby na rozłączenie animacji w AngularJS, jeśli masz moduł ngAnimate jako zależność od swojego modułu:
Wyłącz lub włącz animację globalnie w usłudze $ animate:
Wyłącz animacje dla konkretnego elementu - musi to być element dla tego angulara doda klasy css Animationstate (np. Ng-enter, ...)!
Od wersji Angular 1.4 należy odwrócić argumenty:
Dokumentacja dla
$animate
.źródło
Aby wyłączyć ng-animate dla niektórych elementów, używając klasy CSS, która jest zgodna z paradygmatem Angular animate, możesz skonfigurować ng-animate do testowania klasy przy użyciu wyrażenia regularnego.
Config
Stosowanie
Po prostu dodaj
ng-animate-disabled
klasę do wszystkich elementów, które chcesz ignorować przez ng-animate.Kredyt http://davidchin.me/blog/disable-nganimate-for-selected-elements/
źródło
dzięki, napisałem dyrektywę, którą możesz umieścić na elemencie
CoffeeScript:
JavaScript:
źródło
$animate.enabled(element,false);
Odkryłem, że
$animate.enabled(false, $element);
będzie działać dla elementów, które używająng-show
lub,ng-hide
ale nie będzie działać dla elementów, które używająng-if
z jakiegoś powodu! Rozwiązanie, które ostatecznie wykorzystałem, polegało na zrobieniu tego wszystkiego w CSS, czego nauczyłem się z tego wątku na GitHubie .CSS
SCSS
źródło
Ja nie chce używać ngAnimate na moich
ng-if
„s, więc byłoby to moje rozwiązanie:Po prostu zamieszczam to jako kolejną sugestię!
źródło
Mam listę, z której pierwszy
li
jest ukryty za pomocąng-hide="$first"
. Użycieng-enter
skutkujeli
pokazaniem się przez pół sekundy przed zniknięciem.W oparciu o rozwiązanie Chrisa Barra mój kod wygląda teraz następująco:
HTML
CSS
źródło
Wiem, że to opóźniona odpowiedź, ale tutaj używamy w MainController:
Ale problem polega na tym, że kiedy wyłączamy wszystkie animacje, konfiguracja interfejsu użytkownika jest tak skonfigurowana
opacity: 0
.Dlatego konieczne jest ustawienie krycia na 1 za pomocą CSS:
Spowoduje to prawidłowe ustawienie krycia, a ui-select zadziała.
źródło