AngularJS-apps animeren met ngAnimate



In deze blog wordt uitgelegd hoe u populaire ngAnimate kunt gebruiken om paginaovergangen / animaties toe te voegen aan hoekige weergaven, d.w.z. hoe u een animatie kunt maken met ngAnimate

AngularJS is een superheldisch JavaScript-framework dat het maken van Single Page Applications (SPA) heel eenvoudig maakt. Bovendien wordt AngularJS geleverd met een handvol hoekmodules die kunnen worden gebruikt om een ​​geweldige gebruikerservaring te creëren. In dit bericht gaan we zien hoe we populaire ngAnimate kunnen gebruiken om paginaovergangen / animaties toe te voegen aan hoekige weergaven.

ngAnimate kan worden gebruikt met verschillende richtlijnen zoals ngRepeat, ngView, ngInclude, ngIf, ngMessage etc.





In dit bericht zullen we animaties gebruiken met ngView

Hier gebruiken we Brackets IDE van Adobe, maar u bent vrij om anderen te gebruiken, bijvoorbeeld Sublime Text, WebStorm van JetBrains etc.



Opmerking : We zullen ook Bootswatch Bootstrap API gebruiken om onze HTML-pagina's een mooie uitstraling te geven

Project structuur:

Hieronder ziet u de projectstructuur in Brackets IDE



ngAnimate-angularjs-project-structure

Hier is de korte beschrijving van elk bestand dat in het project wordt gebruikt

animatie.css - hoofd CSS-bestand waarin we onze pagina-animaties definiëren

bootstrap.min.css - bootswatch bootstrap voor het geven van onze tags een mooie look

config.js - hoofd JavaScript-bestand waarin we onze hoekmodule samen met routes en controllers definiëren

shellPage.html - Dit is de shell-pagina waarin andere weergaven dynamisch worden geladen

view1.html, view2.html, view3.html - Dit zijn de gedeeltelijke weergaven die in de shellPage worden geladen

sas programmeerhandleiding voor beginners

Hoe worden animaties toegepast:

ngAnimate past CSS-klassen toe op verschillende Angular-richtlijnen, afhankelijk van of ze de weergave binnenkomen of verlaten

.ng-enter - Deze CSS-klasse is van toepassing op de richtlijn wanneer deze op de pagina wordt geladen

.ng-verlof - Deze CSS-klasse is van toepassing op de richtlijn wanneer deze de pagina verlaat

Laten we elk bestand een voor een doornemen

shellPage.html

shellPage laadt de vereiste bronnen, past ng-app toe op body en voegt ng-view toe om de views dynamisch te injecteren.

  

config.js

In het configuratiebestand definiëren we onze hoekmodule samen met routes en controllers.

Module transitionApp heeft twee afhankelijkheden: ngAnimate en ngRoute

var transitionApp = angular.module ('transitionApp', ['ngAnimate', 'ngRoute']) transitionApp.config (functie ($ 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 ', functie ($ scope) {$ scope.cssClass =' ​​view1 '}) transitionApp.controller (' view2Controller ', functie ($ scope) { $ scope.cssClass = 'view2'}) transitionApp.controller ('view3Controller', functie ($ scope) {$ scope.cssClass = 'view3'})

We hebben drie gedeeltelijke weergaven gedefinieerd (view1, view2, view3) die afhankelijk van de URL in de shellpage zullen worden geïnjecteerd. Respectieve controllers stellen een cssClass-attribuut in, wat de naam is van de CSS-klasse, die wordt toegepast op de ng-view. We zullen onze animaties definiëren in deze CSS-klassen die elke pagina met verschillende animaties laden.

Gedeeltelijke pagina's view1.html, view2.html, view3.html

Er is niet veel in gedeeltelijke pagina's, alleen wat tekst en een link naar andere weergaven

view1.html

Dit is weergave 1

Bekijk 2 Bekijk 3

view2.html

Dit is weergave 2

Bekijk 1 Bekijk 3

view3.html

Dit is weergave 3

Bekijk 1 Bekijk 2

Onthoud dat deze drie HTML-bestanden gedeeltelijke pagina's zijn die in shellPage.html worden geïnjecteerd volgens de URL die we hebben gedefinieerd in het bestand config.js

Stijlen en animaties definiëren:

Laten we onze opvattingen wat leven geven door er CSS op toe te passen

.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 { kleur: # 333 positie: absoluut text-align: midden boven: 50px breedte: 100%} / * Achtergrond- en tekstkleuren voor pagina's met gedeeltelijke weergave (view1, view2, view3) ------------- ------------------------------------------------ * / .view1 {achtergrond: # bef2de kleur: # 00907c} .view2 {achtergrond: # D4D0EA kleur: # 55316f} .view3 {achtergrond: # FFCBA4 kleur: rgba (149, 95, 40, 0.91)}

Om een ​​schone overgang tussen verschillende weergaven te maken, zullen we de CSS z-index-eigenschap instellen

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

Nu is het tijd om onze animaties te definiëren

Schuif naar links animatie

/ * schuif naar links * / @keyframes slideOutLeft {naar {transform: translateX (-100%)}} @ -moz-keyframes slideOutLeft {naar {-moz-transform: translateX (-100%)}} @ -webkit-keyframes slideOutLeft {naar {-webkit-transform: translateX (-100%)}}

Animatie opschalen

/ * opschalen * / @keyframes scaleUp {van {dekking: 0.3 transform: scale (0.8)}} @ -moz-keyframes scaleUp {van {dekking: 0.3 -moz-transform: scale (0.8)}} @ -webkit- keyframes scaleUp {van {opacity: 0.3 -webkit-transform: scale (0.8)}}

Schuif in vanaf de juiste animatie

/ * schuif van rechts naar binnen * / @keyframes slideInRight {van {transform: translateX (100%)} naar {transform: translateX (0)}} @ -moz-keyframes slideInRight {van {-moz-transform: translateX (100 %)} naar {-moz-transform: translateX (0)}} @ -webkit-keyframes slideInRight {van {-webkit-transform: translateX (100%)} naar {-webkit-transform: translateX (0)}}

Schuif in vanaf de onderste animatie

/ * schuif van onder naar binnen * / @keyframes slideInUp {van {transform: translateY (100%)} naar {transform: translateY (0)}} @ -moz-keyframes slideInUp {van {-moz-transform: translateY (100 %)} naar {-moz-transform: translateY (0)}} @ -webkit-keyframes slideInUp {van {-webkit-transform: translateY (100%)} naar {-webkit-transform: translateY (0)}}

Draai en val animatie

/ * roteren en vallen * / @ -webkit-keyframes rotateFall {0% {-webkit-transform: rotateZ (0deg)} 20% {-webkit-transform: rotateZ (10deg) -webkit-animatie-timing-functie: gemak- 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-animatie-timing-functie: gemak-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 (10deg) animatie-timing-functie: gemak-out} 40% {transform: rotateZ (17deg)} 60% {transform: rotateZ (16deg)} 100% {transform: translateY (100%) rotateZ (17deg)}}

Draai de animatie van de krant

/ * roteer krant * / @ -webkit-keyframes rotateOutNewspaper {naar {-webkit-transform: translateZ (-3000px) rotateZ (360deg) dekking: 0}} @ -moz-keyframes rotateOutNewspaper {naar {-moz-transform: translateZ (-3000px) rotateZ (360deg) dekking: 0}} @keyframes rotateOutNewspaper {naar {transform: translateZ (-3000px) rotateZ (360deg) dekking: 0}}

Animaties toepassen:

Het is tijd om de animaties toe te passen die we eerder hadden gedefinieerd

Bekijk 1 animaties

/ * Bekijk 1 animaties voor pagina verlaten en voer * / .view1.ng-leave {-webkit-animation: slideOutLeft 0,5s beide gemakkelijk-in -moz-animatie: slideOutLeft 0,5s beide gemakkelijke animatie: slideOutLeft 0,5s beide gemak -in} .view1.ng-enter {-webkit-animation: scaleUp 0,5s beide gemak-in -moz-animation: scaleUp 0,5s beide gemakkelijke animatie: scaleUp 0,5s beide gemak-in}

Bekijk 2 animaties

/ * Bekijk 2 animaties voor het verlaten van de pagina en voer * / .view2.ng-leave {-webkit-transform-origin: 0% 0% -webkit-animation: rotateFall 1s beide gemak-in -moz-transform-origin: 0% in 0% -moz-animatie: rotateFall 1s beide gemak-in transformatie-oorsprong: 0% 0% animatie: rotateFall 1s beide gemak-in} .view2.ng-enter {-webkit-animation: slideInRight 0,5s beide gemak-in - moz-animation: slideInRight 0,5s beide easy-in animatie: slideInRight 0,5s beide easy-in}

Bekijk 3 animaties

/ * Bekijk 3 animaties voor het verlaten van de pagina en voer * / .view3.ng-leave {-webkit-transform-origin: 50% 50% -webkit-animation: rotateOutNewspaper .5s beide gemak-in -moz-transform-origin: 50 in % 50% -moz-animatie: rotateOutNewspaper .5s beide gemak-in transformatie-oorsprong: 50% 50% animatie: rotateOutNewspaper .5s beide gemak-in} .view3.ng-enter {-webkit-animatie: slideInUp 0,5s beide gemak -in -moz-animatie: slideInUp 0,5s beide animatie: slideInUp 0,5s beide gemak}

We zijn klaar met alle veranderingen. Nu is het tijd om de applicatie uit te voeren

De applicatie uitvoeren

Bij het starten van de applicatie krijgt u de onderstaande pagina te zien:

Klik op de links en je zult animaties zien die in het spel zijn, bij het betreden en verlaten van de deelpagina's.

Er zijn verschillende andere animaties die kunnen worden gebruikt. Er kan ook een overweldigende reeks mogelijke effecten zijn: http://tympanus.net/Development/PageTransitions/

Download de code en probeer het zelf

[buttonleads form_title = 'Download code' redirect_url = https: //edureka.wistia.com/medias/erx9uep9sa/download? media_file_id = 80450196 course_id = 283 button_text = 'Download code']

Ik hoop dat je de bovenstaande animatie met ngAnimate-blog leuk vond. Als je diep in Angular JS wilt duiken, zou ik je aanraden, waarom zou je onze cursuspagina. De Angular JS Certification-training bij Edureka zal je een expert in Angular JS maken door middel van live door een instructeur geleide sessies en hands-on training met gebruikmaking van praktijkcases.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte en we nemen contact met u op.

java for loop programma voorbeelden

Gerelateerde berichten:

XML-bestanden parseren met SAX Parser