Animácia aplikácií AngularJS pomocou ngAnimate



Tento blog vysvetlí, ako používať populárny ngAnimate na pridanie prechodov / animácií stránok do uhlových zobrazení, t. J. Ako vytvoriť animáciu pomocou ngAnimate

AngularJS je superhrdinský rámec JavaScriptu, vďaka ktorému je vytváranie Single Page Applications (SPA) veľmi jednoduché. Okrem toho prichádza AngularJS s niekoľkými uhlovými modulmi, ktoré možno použiť na vytvorenie úžasného používateľského zážitku. V tomto príspevku sa dozvieme, ako používať populárny ngAnimate na pridanie prechodov / animácií stránok do uhlových pohľadov.

ngAnimate je možné použiť s rôznymi smernicami ako ngRepeat, ngView, ngInclude, ngIf, ngMessage atď.





V tomto príspevku použijeme animácie s ngView

Tu používame zátvorky IDE od spoločnosti Adobe, ale môžete slobodne používať ďalšie, napríklad Sublime Text, WebStorm od JetBrains atď.



Poznámka : Na zaistenie krásneho vzhľadu našich stránok HTML tiež použijeme Bootswatch Bootstrap API

java previesť binárne na desatinné

Štruktúra projektu:

Ďalej je uvedená štruktúra projektu v zátvorkách IDE



ngAnimate-angularjs-project-structure

Tu je krátky popis každého súboru použitého v projekte

animation.css - hlavný súbor CSS, kde definujeme naše animácie stránok

bootstrap.min.css Topánka bootstrap pre dávanie označí krásny vzhľad

config.js - hlavný súbor JavaScriptu, kde definujeme náš uhlový modul spolu s trasami a radičmi

shellPage.html - Toto je stránka shellu, na ktorej sa dynamicky načítajú ďalšie zobrazenia

view1.html, view2.html, view3.html - Toto sú čiastočné pohľady, ktoré sa načítajú do shellPage

Ako sa používajú animácie:

ngAnimate aplikuje triedy CSS na rôzne uhlové smernice v závislosti od toho, či vstupujú do pohľadu alebo z neho odchádzajú

.ng-vstúpiť - Táto trieda CSS sa na smernicu vzťahuje vždy, keď sa načíta na stránku

.ng-odísť - Táto trieda CSS sa na smernicu vzťahuje vždy, keď opustí stránku

Prejdime si postupne každý súbor

shellPage.html

shellPage načíta požadované zdroje, aplikuje ng-app na body a pridá ng-view na dynamické vloženie pohľadov.

  

config.js

V konfiguračnom súbore definujeme náš uhlový modul spolu s trasami a radičmi.

Modul transitionApp majú dve závislosti: ngAnimate a ngRoute

var transitionApp = angular.module ('transitionApp', ['ngAnimate', 'ngRoute']) transitionApp.config (funkcia ($ routeProvider) {$ routeProvider .when ('/', {templateUrl: 'partials / view1.html' , controller: 'view1Controller'}) .when ('/ view2', {templateUrl: 'partials / view2.html', controller: 'view2Controller'}) .when ('/ view3', {templateUrl: 'partials / view3. html ', controller:' view3Controller '})}) transitionApp.controller (' view1Controller ', function ($ scope) {$ scope.cssClass =' ​​view1 '}) transitionApp.controller (' view2Controller ', function ($ scope) { $ scope.cssClass = 'view2'}) transitionApp.controller ('view3Controller', function ($ scope) {$ scope.cssClass = 'view3'})

Definovali sme tri čiastkové pohľady (view1, view2, view3), ktoré budú vložené do shellpage v závislosti na URL. Respective Controllers nastaví atribút cssClass, čo je názov triedy CSS, ktorý sa použije na ng-view. Naše animácie si zadefinujeme v týchto triedach CSS, ktoré načítajú každú stránku s rôznymi animáciami.

Čiastočné stránky view1.html, view2.html, view3.html

Na čiastkových stránkach nie je nič moc, iba nejaký text a odkaz na iné zobrazenia

view1.html

java ako ukončiť program

Toto je pohľad 1

Výhľad 2 Výhľad 3

view2.html

Toto je pohľad 2

Zobraziť 1 Výhľad 3

view3.html

Toto je pohľad 3

Zobraziť 1 Výhľad 2

Pamätajte, že tieto tri súbory HTML sú čiastkové stránky, ktoré sa vložia do súboru shellPage.html podľa adresy URL, ktorú sme definovali v súbore config.js.

Definovanie štýlov a animácií:

Poďme oživiť naše názory tým, že na ne použijeme CSS

.view {bottom: 0 padding-top: 200px position: absolute text-align: center top: 0 width: 100%} .view a {margin-top: 50px} .view h1 {font-size: 60px} #heading { farba: pozícia 333: absolútne zarovnanie textu: stred hore: 50px šírka: 100%} / * Farby pozadia a textu pre stránky s čiastočným zobrazením (view1, view2, view3) ------------- ------------------------------------------------ * / .view1 {background: # bef2de color: # 00907c} .view2 {background: # D4D0EA color: # 55316f} .view3 {background: # FFCBA4 color: rgba (149, 95, 40, 0,91)}

Aby sme dosiahli čistý prechod medzi rôznymi pohľadmi, nastavíme vlastnosť CSS z-index

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

Teraz je čas definovať naše animácie

Animácia snímok doľava

/ * vysuňte doľava * / @keyframes slideOutLeft {do {transformácie: translateX (-100%)}} @ -moz-keyframes slideOutLeft {do {-moz-transform: translateX (-100%)}} @ -webkit-keyframes slideOutLeft {to {-webkit-transform: translateX (-100%)}}

Zväčšiť veľkosť animácie

/ * scale up * / @keyframes scaleUp {od {opacity: 0,3 transformácia: scale (0,8)}} @ -moz-keyframes scaleUp {od {opacity: 0,3 -moz-transform: scale (0,8)}} @ -webkit- keyframes scaleUp {from {opacity: 0.3 -webkit-transform: scale (0.8)}}

Zasunutie z pravej animácie

/ * zasunúť sprava * / @keyframes slideInRight {od {transform: translateX (100%)} do {transform: translateX (0)}} @ -moz-keyframes slideInRight {z {-moz-transform: translateX (100 %)} na {-moz-transform: translateX (0)}} @ -webkit-keyframes slideInRight {od {-webkit-transform: translateX (100%)} do {-webkit-transform: translateX (0)}}

Zasunutie zo spodnej animácie

/ * zasuňte zdola * / @keyframes slideInUp {od {transform: translateY (100%)} do {transform: translateY (0)}} @ -moz-keyframes slideInUp {z {-moz-transform: translateY (100 %)} na {-moz-transform: translateY (0)}} @ -webkit-keyframes slideInUp {od {-webkit-transform: translateY (100%)} do {-webkit-transform: translateY (0)}}

Otočenie a pád animácie

/ * rotate and fall * / @ -webkit-keyframes rotateFall {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ácia: rotateZ (10 stupňov), funkcia časovania animácie: uľahčenie} 40% {transformácia: rotateZ (17 stupňov)} 60% {transformácia: rotateZ (16 stupňov)} 100% {transformácia: translateY (100%) rotateZ (17deg)}}

Otočenie animácie novín

/ * otočiť noviny * / @ -webkit-keyframes rotateOutNewspaper {na {-webkit-transform: translateZ (-3000px) rotateZ (360deg) nepriehľadnosť: 0}} @ -moz-keyframes rotateOutNewspaper {na {-moz-transform: translateZ (-3000px) rotateZ (360stupňov) nepriehľadnosť: 0}} @keyframes rotateOutNewspaper {na {transformácia: translateZ (-3000px) rotateZ (360stupňov) nepriehľadnosť: 0}}

Uplatňovanie animácií:

Je čas použiť animácie, ktoré sme si predtým definovali

Zobraziť 1 animácií

/ * Zobrazte 1 animáciu pre opustenie stránky a zadajte * / .view1.ng-leave {-webkit-animácia: slideOutLeft 0,5 s obidve uľahčenie v -moz-animácia: slideOutLeft 0,5 s obe uľahčenie animácie: slideOutLeft 0,5 s obe uľahčenie -v} .view1.ng-enter {-webkit-animácia: scaleUp 0,5 s obidve uľahčenie -moz-animácia: scaleUp 0,5 s obe uľahčenie animácie: scaleUp 0,5 s obe uľahčenie}

Zobraziť 2 animácie

/ * Zobrazte 2 animácie pre opustenie stránky a zadajte * / .view2.ng-leave {-webkit-transform-origin: 0% 0% -webkit-animation: rotateFall 1s ako ľahká in -moz-transform-origin: 0% 0% -moz-animation: rotateFall 1s oba uľahčenie transformácie: 0% 0% animácia: rotateFall 1s oba uľahčenie} .view2.ng-enter {-webkit-animation: slideInRight 0,5s oba uľahčenie - moz-animation: slideInRight 0,5 s obe uľahčenie animácie: slideInRight 0,5 s obe uľahčenie}

Zobraziť 3 animácie

/ * Zobrazte 3 animácie pre opustenie stránky a zadajte * / .view3.ng-leave {-webkit-transform-origin: 50% 50% -webkit-animation: rotateOutNewspaper. 5s ľahkosť v -moz-transform-origin: 50 % 50% -moz-animation: rotateOutNewspaper .5s oba uľahčujú transformáciu-pôvod: 50% 50% animácia: rotateOutNewspaper .5s obaja uľahčujú} }view3.ng-enter {-webkit-animation: slideInUp 0,5 s obidve uľahčujú -in -moz-animation: slideInUp 0,5 s obe uľahčenie animácie: slideInUp 0,5 s obe uľahčenie}

Všetky zmeny sme skončili. Teraz je čas spustiť aplikáciu

Spustenie aplikácie

Pri spustení aplikácie sa zobrazí nasledujúca stránka:

ako otestovať databázu

Kliknite na odkazy a uvidíte animácie v hre, pri vstupe a výstupe z čiastkových stránok.

Existujú rôzne ďalšie animácie, ktoré je možné použiť. Môže tu byť aj ohromná sada možných účinkov: http://tympanus.net/Development/PageTransitions/

Stiahnite si kód a vyskúšajte sami

[buttonleads form_title = ”Stiahnutie kódu” redirect_url = https: //edureka.wistia.com/medias/erx9uep9sa/download? media_file_id = 80450196 course_id = 283 button_text = ”Stiahnutie kódu”]

Dúfam, že sa vám vyššie uvedená animácia s blogom ngAnimate páčila. Ak sa chcete hlboko ponoriť do Angular JS, odporučil by som vám, prečo sa nepozrieť na našu stránka kurzu. Certifikačné školenie Angular JS na Edureke z vás urobí experta na Angular JS prostredníctvom živých školení vedených inštruktorom a praktických školení s využitím prípadov reálneho života.

Máte na nás otázku? Uveďte to prosím v sekcii komentárov a my sa vám ozveme.

Súvisiace príspevky:

Analýza súborov XML pomocou analyzátora SAX