Animowanie aplikacji AngularJS za pomocą ngAnimate



Ten blog wyjaśni, jak używać popularnego ngAnimate do dodawania przejść / animacji stron do widoków kątowych, tj. Jak tworzyć animacje za pomocą ngAnimate

AngularJS to superbohaterski framework JavaScript, który bardzo ułatwia tworzenie aplikacji jednostronicowych (SPA). Ponadto AngularJS zawiera kilka modułów kątowych, których można użyć do stworzenia niesamowitych wrażeń użytkownika. W tym poście zobaczymy, jak używać popularnego programu ngAnimate do dodawania przejść / animacji stron do widoków kątowych.

ngAnimate może być używany z różnymi dyrektywami, takimi jak ngRepeat, ngView, ngInclude, ngIf, ngMessage itp.





W tym poście wykorzystamy animacje z ngView

Tutaj używamy Brackets IDE firmy Adobe, ale możesz swobodnie korzystać z innych, na przykład Sublime Text, WebStorm z JetBrains itp.



Uwaga : Użyjemy również API Bootstrap Bootswatch, aby nadać naszym stronom HTML piękny wygląd

Struktura projektu:

Poniżej znajduje się struktura projektu w Brackets IDE



ngAnimate-angularjs-project-structure

Oto krótki opis każdego pliku używanego w projekcie

animacja.css - główny plik CSS, w którym definiujemy animacje naszej strony

bootstrap.min.css - bootstrap do butów do nadania naszym oznacza piękny wygląd

config.js - główny plik JavaScript, w którym definiujemy nasz moduł kątowy wraz z trasami i kontrolerami

shellPage.html - To jest strona powłoki, na której inne widoki będą ładowane dynamicznie

view1.html, view2.html, view3.html - To są częściowe widoki, które zostaną załadowane na shellPage

Jak są stosowane animacje:

ngAnimate stosuje klasy CSS do różnych dyrektyw Angular w zależności od tego, czy wchodzą lub wychodzą z widoku

.ng-enter - Ta klasa CSS ma zastosowanie do dyrektywy za każdym razem, gdy zostanie załadowana na stronę

jak wyjść z programu java

.ng-zostaw - Ta klasa CSS ma zastosowanie do dyrektywy za każdym razem, gdy opuszcza stronę

Przejrzyjmy każdy plik jeden po drugim

shellPage.html

shellPage ładuje wymagane zasoby, stosuje ng-app do body i dodaje ng-view, aby dynamicznie wstrzykiwać widoki.

  

config.js

W pliku konfiguracyjnym definiujemy nasz moduł kątowy wraz z trasami i kontrolerami.

stl sort c ++

Moduł TransitionApp ma dwie zależności: ngAnimate i ngRoute

var przejścieApp = angular.module ('transitApp', ['ngAnimate', 'ngRoute']) transitApp.config (function ($ routeProvider) {$ routeProvider .when ('/', {templateUrl: 'częściowe / view1.html' , controller: 'view1Controller'}) .when ('/ view2', {templateUrl: 'Parts / view2.html', controller: 'view2Controller'}) .when ('/ view3', {templateUrl: 'częściowe / widok3. html ', kontroler:' view3Controller '})}) transitApp.controller (' view1Controller ', function ($ scope) {$ scope.cssClass =' ​​view1 '}) transitApp.controller (' view2Controller ', function ($ scope) { $ scope.cssClass = 'view2'}) transitApp.controller ('view3Controller', function ($ scope) {$ scope.cssClass = 'view3'})

Zdefiniowaliśmy trzy częściowe widoki (view1, view2, view3), które będą wstawiane do shellpage w zależności od adresu URL. Odpowiednie kontrolery ustawiają atrybut cssClass, który jest nazwą klasy CSS, która zostanie zastosowana do widoku ng-view. W tych klasach CSS zdefiniujemy nasze animacje, które będą ładować każdą stronę z różnymi animacjami.

Częściowe strony view1.html, view2.html, view3.html

Na częściowych stronach nie ma nic, tylko trochę tekstu i linki do innych widoków

view1.html

To jest widok 1

Widok 2 Widok 3

view2.html

To jest widok 2

Widok 1 Widok 3

view3.html

To jest widok 3

Widok 1 Widok 2

Pamiętaj, że te trzy pliki HTML to częściowe strony, które zostaną wstrzyknięte do shellPage.html zgodnie z adresem URL, który zdefiniowaliśmy w pliku config.js

Definiowanie stylów i animacji:

Tchnijmy życie w nasze poglądy, stosując do nich CSS

.view {bottom: 0 padding-top: 200px position: bezwzględna text-align: center top: 0 width: 100%} .view a {margin-top: 50px} .view h1 {font-size: 60px} #heading { kolor: # 333 pozycja: bezwzględne wyrównanie tekstu: do środka na górze: 50 pikseli szerokość: 100%} / * Kolory tła i tekstu na stronach widoku częściowego (widok1, widok2, widok3) ------------- ------------------------------------------------ * / .view1 {background: # bef2de color: # 00907c} .view2 {background: # D4D0EA color: # 55316f} .view3 {background: # FFCBA4 color: rgba (149, 95, 40, 0.91)}

Aby zapewnić płynne przejście między różnymi widokami, ustawimy właściwość CSS z-index

.view.ng-leave {z-index: 9999} .view.ng-enter {z-index: 8888}

Nadszedł czas, aby zdefiniować nasze animacje

Przesuń lewą animację

/ * wysuń w lewo * / @keyframes slideOutLeft {do {transform: translateX (-100%)}} @ -moz-keyframes slideOutLeft {do {-moz-transform: translateX (-100%)}} @ -webkit-keyframes slideOutLeft {do {-webkit-transform: translateX (-100%)}}

Skaluj animację

/ * scale up * / @keyframes scaleUp {from {opacity: 0.3 transform: scale (0.8)}} @ -moz-keyframes scaleUp {from {opacity: 0.3 -moz-transform: scale (0.8)}} @ -webkit- keyframes scaleUp {from {opacity: 0.3 -webkit-transform: scale (0.8)}}

Przesuń się z prawej animacji

/ * wsuń się z prawej strony * / @keyframes slideInRight {z {transform: translateX (100%)} do {transform: translateX (0)}} @ -moz-keyframes slideInRight {from {-moz-transform: translateX (100 %)} do {-moz-transform: translateX (0)}} @ -webkit-keyframes slideInRight {z {-webkit-transform: translateX (100%)} do {-webkit-transform: translateX (0)}}

Wsuń się od dołu animacji

/ * wsuń się od dołu * / @keyframes slideInUp {from {transform: translateY (100%)} to {transform: translateY (0)}} @ -moz-keyframes slideInUp {from {-moz-transform: translateY (100 %)} do {-moz-transform: translateY (0)}} @ -webkit-keyframes slideInUp {z {-webkit-transform: translateY (100%)} do {-webkit-transform: translateY (0)}}

Animacja obracania i opadania

/ * rotate and fall * / @ -webkit-keyframes rotate Fall {0% {-webkit-transform: rotateZ (0deg)} 20% {-webkit-transform: rotateZ (10deg) -webkit-animation-timing-function: easy- out} 40% {-webkit-transform: rotateZ (17deg)} 60% {-webkit-transform: rotateZ (16deg)} 100% {-webkit-transform: translateY (100%) rotateZ (17deg)}} @ -moz -keyframes rotateFall {0% {-moz-transform: rotateZ (0deg)} 20% {-moz-transform: rotateZ (10deg) -moz-animation-timing-function: easy-out} 40% {-moz-transform: rotateZ (17deg)} 60% {-moz-transform: rotateZ (16deg)} 100% {-moz-transform: translateY (100%) rotateZ (17deg)}} @keyframes rotateFall {0% {transform: rotateZ (0deg) } 20% {transform: rotateZ (10 stopni) funkcja-timingu-animacji: relax-out} 40% {transform: rotateZ (17 stopni)} 60% {transform: rotateZ (16 stopni)} 100% {transform: translateY (100%) rotateZ (17 stopni)}}

Obróć animację prasową

/ * obróć gazetę * / @ -webkit-keyframes rotateOutNewspaper {do {-webkit-transform: translateZ (-3000px) rotateZ (360 stopni) krycie: 0}} @ -moz-keyframes rotateOutNewspaper {do {-moz-transform: translateZ (-3000px) rotateZ (360 stopni) krycie: 0}} @keyframes rotateOutNewspaper {do {transform: translateZ (-3000px) rotateZ (360 stopni) krycie: 0}}

Stosowanie animacji:

Czas zastosować animacje, które wcześniej zdefiniowaliśmy

Wyświetl 1 animacje

/ * Wyświetl 1 animację do opuszczenia strony i wprowadź * / .view1.ng-leave {-webkit-animation: slideOutLeft 0,5 s oba ułatwienia -moz-animation: slideOutLeft 0,5 s obie ułatwienia animacji: slideOutLeft 0,5 s oba ułatwienia -in} .view1.ng-enter {-webkit-animation: scaleUp 0,5s oba ułatwienia -moz-animation: scaleUp 0,5s oba ułatwienia animacji: scaleUp 0,5s oba ułatwienia}

Wyświetl 2 animacje

/ * Wyświetl 2 animacje do opuszczenia strony i wpisz * / .view2.ng-leave {-webkit-transform-origin: 0% 0% -webkit-animation: rotate Fall 1s zarówno easy-in -moz-transform-origin: 0% 0% -moz-animation: rotate Fall 1s oba ułatwienia transform-origin: 0% 0% animation: rotate Fall 1s oba ułatwienia} .view2.ng-enter {-webkit-animation: slideInRight 0,5s oba ułatwienia - moz-animation: slideInRight 0,5 s, oba ułatwienia, animacja: slideInRight 0,5 s, oba ułatwienia}

Wyświetl 3 animacje

/ * Wyświetl 3 animacje do opuszczenia strony i wpisz * / .view3.ng-Leave {-webkit-transform-origin: 50% 50% -webkit-animation: rotateOutNewspaper .5s oba ułatwiają-w-moz-transform-origin: 50 % 50% -moz-animation: rotateOutNewspaper .5s zarówno ułatwiają transformację pochodzenia: 50% 50% animacji: rotateOutNewspaper .5s oba ułatwienia} .view3.ng-enter {-webkit-animation: slideInUp 0,5s oba łatwiej -in -moz-animation: slideInUp 0,5 s zarówno animacja ułatwiająca wprowadzanie: slideInUp 0,5 s jednocześnie łagodna}

Skończyliśmy ze wszystkimi zmianami. Nadszedł czas, aby uruchomić aplikację

Uruchomienie aplikacji

Po uruchomieniu aplikacji zostanie wyświetlona poniższa strona:

Kliknij linki, a zobaczysz animacje uruchamiane podczas wchodzenia i wychodzenia z częściowych stron.

Istnieje wiele innych animacji, których można użyć. Może tu być również przytłaczający zestaw możliwych efektów: http://tympanus.net/Development/PageTransitions/

najlepszy pomysł java dla ubuntu

Pobierz kod i wypróbuj sam

[buttonleads form_title = ”Pobierz kod” redirect_url = https: //edureka.wistia.com/medias/erx9uep9sa/download? media_file_id = 80450196 course_id = 283 button_text = ”Pobierz kod”]

Mam nadzieję, że podobała Ci się powyższa animacja na blogu ngAnimate. Jeśli chcesz zagłębić się w temat Angular JS, polecam Ci, dlaczego nie zajrzeć do naszego strona kursu. Szkolenie Angular JS Certification w Edureka uczyni Cię ekspertem w Angular JS dzięki sesjom prowadzonym na żywo przez instruktora i praktycznym szkoleniom z wykorzystaniem rzeczywistych przypadków użycia.

Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy, a my skontaktujemy się z Tobą.

Powiązane posty:

Przetwarzanie plików XML przy użyciu SAX Parser