Maison interface Web js tutoriel Code pour implémenter certains effets d'animation dans les applications AngularJS_AngularJS

Code pour implémenter certains effets d'animation dans les applications AngularJS_AngularJS

May 16, 2016 pm 03:54 PM
angularjs

En Angular, la seule différence entre CSS et JavaScript est leur définition. Il n'y a aucune différence qui empêche l'utilisation de l'animation définie. Tout d’abord, nous devons charger le module ngAnimate dans le module racine de notre application.

angular.module('coursesApp', ['ngAnimate']);
Copier après la connexion

Tous les événements d'animation JavaScript qui seront gérés restent inchangés. Voici une liste des animations directement prises en charge et de leurs différents comportements correspondants :

Ensemble d'événements de commande

  • ng-view
  • ng-include
  • ng-switch
  • ng-si entrez
  • partir
  • ng-repeat enter
  • partir
  • bouger
  • ng-show
  • ng-cacher
  • ajout de classe ng
  • supprimer

La liste ci-dessus est la même que l'article précédent, mais les classes CSS correspondantes ne sont pas mentionnées car nous n'en avons pas besoin pour définir des animations JavaScript. Tous ces événements ne seront générés qu'après que le module d'application aura chargé le module ngAnimate. Voyons maintenant comment faire fonctionner ces commandes.
Syntaxe de personnalisation des animations angulaires

Ce qui suit est un cadre de base pour une animation JavaScript personnalisée :


angular.module('coursesApp').animation('.name-of-animation', function(<injectables>) {
 return {
 event: function(elem, done){
  //logic of animation
  done();
 }
 };
});
Copier après la connexion

Voici quelques points clés à retenir lors de l'écriture d'animations JavaScript dans AngularJS :

  • Le nom de l'animation commence par un point (.)
  • Tous les comportements d'animation acceptent deux paramètres :
  • Un objet dans l'élément DOM actuel qui est sur le point d'être animé est soit un objet jQlite qui a été chargé avant que jQuery ne le charge avant AngularJS, soit un objet jQuery.
  • Une fonction de rappel à la fin de l'animation. L'action correspondant à l'instruction est suspendue jusqu'à ce que la fonction de rappel soit appelée.

Nous disposons de plusieurs bibliothèques JavaScript comme jQuery, Greensock, Anima et plusieurs autres qui facilitent l'écriture d'animations. Pour simplifier les choses, j'utilise jQuery pour créer des animations dans cet article. Pour en savoir plus sur plusieurs autres bibliothèques, vous pouvez visiter leurs sites Web correspondants.

Laissez ng-view bouger

Une animation utilisée sur une directive ng-view s'exécute lors du changement de vue dans une application AngularJS.

Ce qui suit est l'effet visuel provoqué par l'animation lorsqu'une vue apparaît :

courseAppAnimations.animation('.view-slide-in', function () {
 return {
 enter: function(element, done) {
  element.css({
  opacity: 0.5,
  position: "relative",
  top: "10px",
  left: "20px"
  })
  .animate({
  top: 0,
  left: 0,
  opacity: 1
  }, 1000, done);
 }
 };
});
Copier après la connexion

Ce qui précède crée un effet coulissant lorsqu'une vue entre dans l'écran. La méthode done est transmise en tant que fonction de rappel. Cela indique que l'animation est terminée et que le framework AngularJS peut maintenant continuer avec l'action suivante.

Notez la méthode dans laquelle la méthode animate() est appelée. Nous n'avons pas besoin de convertir cet élément en objet jQuery car jQuery est chargé avant le chargement d'AngularJS.

Nous devons maintenant appliquer cet effet d'animation à la directive ng-view. Même si l'animation est définie en JavaScript, par convention nous utilisons une balise class pour l'appliquer à la directive cible.

<div ng-view class="view-slide-in"></div>
Copier après la connexion

animation ng-répétition
Parmi les instructions que vous pouvez choisir d'utiliser, ng-repeat est une instruction très importante. Il existe deux instructions de fonctionnement de base : le filtrage et le tri. Ajoutez, déplacez ou supprimez les instructions correspondantes en fonction de l'opération effectuée.
La démonstration suivante utilise quelques animations de base. Lorsque des modifications se produisent, vous pouvez voir les effets d'animation correspondants.

courseAppAnimations.animation('.repeat-animation', function () {
 return {
 enter : function(element, done) {
  console.log("entering...");
  var width = element.width();
  element.css({
  position: 'relative',
  left: -10,
  opacity: 0
  });
  element.animate({
  left: 0,
  opacity: 1
  }, done);
 },
 leave : function(element, done) {
  element.css({
  position: 'relative',
  left: 0,
  opacity: 1
  });
  element.animate({
  left: -10,
  opacity: 0
  }, done);
 },
 move : function(element, done) {
  element.css({
  left: "2px",
  opacity: 0.5
  });
  element.animate({
  left: "0px",
  opacity: 1
  }, done);
 }
 };
});
Copier après la connexion


Animation Ng-masquer

La directive ng-hide est utilisée pour ajouter ou supprimer la classe de style ng-hide de l'élément cible. Pour utiliser une animation, nous devons souvent ajouter ou supprimer des styles CSS. Transmettez le nom de la classe à la classe d'animation pour obtenir cet effet. Cela nous permet d'inspecter la classe et d'apporter les modifications appropriées au code.

Ce qui suit est un exemple de code d'animation qui utilise la directive ng-hide pour obtenir l'effet de fondu des éléments :

courseAppAnimations.animation('.hide-animation', function () {
 return {
 beforeAddClass : function(element, className, done) {
  if (className === 'ng-hide') {
  element.animate({
   opacity: 0
  },500, done);
  } else {
  done();
  }
 },
 removeClass : function(element, className, done) {
  if (className === 'ng-hide') {
  element.css('opacity',0);
  element.animate({
   opacity: 1
  }, 500, done);
  } else {
  done();
  }
 }
 };
});
Copier après la connexion


Laissez les commandes personnalisées entrer en jeu

Afin d'animer des instructions personnalisées, nous devons utiliser le service $animate. Bien que le service $animate fasse partie du framework de base d'AngularJS, ngAnimate doit être chargé pour que ce service joue pleinement son rôle.

En utilisant le même exemple de l'article précédent, nous présenterons une liste de cours d'une page. Nous créons une commande pour afficher les détails du cours dans une grille, et le contenu de la grille changera lorsque l'on cliquera sur le lien "Afficher les statistiques". Ajoutons une animation pour présenter cette transition à l'utilisateur.

Lorsque l'animation de transition démarre, nous ajouterons une balise de classe CSS et à la fin, supprimerons la balise de classe. Voici un exemple de code pour cette directive :

app.directive('courseDetails', function ($animate) {
  return {
  scope: true,
  templateUrl: 'courseDetails.html',
  link: function (scope, elem, attrs) {
   scope.viewDetails = true;
   elem.find('button').bind('click', function () {
   $animate.addClass(elem, "switching", function () {
    elem.removeClass("switching");
    scope.viewDetails =! scope.viewDetails;
    scope.$apply();
  });
  });
 }
 };
});
Copier après la connexion


正如你所看到的,我们在动画结束时执行这个动作。在浏览器的开发者工具中,我们会在查看指令元素时发现switching-active和switching-add这两个类标记正被很快的添加随后被移除。我们可以通过定义一个CSS转换样式或者一个自定义的JavaScript动画来查看动画的效果。以下就是一个简单地CSS转换样式,可以被用于上面提到的指令,为了简洁性我们移去了特定的前缀:


.det-anim.switching {
 transition: all 1s linear;
 position: relative;
 opacity: 0.5;
 left: -20px;
}
Copier après la connexion

又或者,这里有一个jQuery写的动画,可以用于同样的指令:

courseAppAnimations.animation('.js-anim', function () {
 return {
 beforeAddClass: function(element, className, done) {
  if (className === 'switching') {
  element.animate({
   opacity: 0
  },1000, function (){
   element.css({
   opacity: 1
   });
   done();
  });
  }
  else {
  done();
  }
 }
 }
});
Copier après la connexion

这些动画当中,如果它可以应用于内建的指令上,它同样也可以被应用到自定义的指令上:

<div course-details 
  class="det-anim"
  title="{{course.title}}">
</div>
Copier après la connexion

你可以在示例页面看到以上所有的动画运行时的效果。
 
结论

动画,当被适合并正常的运用时,将给应用程序带来生气。正如我们所看到的,AngularJS对CSS和JavaScript动画都提供各种支持。你可以根据团队的情况来挑选其中一种。

但是,使用太多的动画将会使得应用程序变得缓慢,而对于用户来,这将使应用程序看起来i不够人性化。所以,必须小心并最优化的使用这件利器。

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Les 5 derniers tutoriels Angularjs en 2022, de l'entrée à la maîtrise Les 5 derniers tutoriels Angularjs en 2022, de l'entrée à la maîtrise Jun 15, 2017 pm 05:50 PM

Javascript est un langage tout à fait unique. Il est unique en termes d'organisation du code, de paradigme de programmation du code et de théorie orientée objet. La question de savoir si Javascript est un langage orienté objet a été débattue depuis un certain temps. Il y a évidemment une réponse depuis longtemps. Cependant, même si Javascript est dominant depuis vingt ans, si vous souhaitez comprendre les frameworks populaires tels que jQuery, Angularjs et même React, il suffit de regarder le « Black Horse Cloud Classroom JavaScript Advanced Framework ». Tutoriel vidéo de conception".

Utilisez PHP et AngularJS pour créer un site Web réactif afin d'offrir une expérience utilisateur de haute qualité Utilisez PHP et AngularJS pour créer un site Web réactif afin d'offrir une expérience utilisateur de haute qualité Jun 27, 2023 pm 07:37 PM

À l’ère de l’information d’aujourd’hui, les sites Web sont devenus un outil important permettant aux individus d’obtenir des informations et de communiquer. Un site Web réactif peut s’adapter à divers appareils et offrir aux utilisateurs une expérience de haute qualité, ce qui est devenu un point chaud dans le développement de sites Web modernes. Cet article expliquera comment utiliser PHP et AngularJS pour créer un site Web réactif afin d'offrir une expérience utilisateur de haute qualité. Introduction à PHP PHP est un langage de programmation open source côté serveur idéal pour le développement Web. PHP présente de nombreux avantages, tels que la facilité d'apprentissage, la multiplateforme, la riche bibliothèque d'outils et l'efficacité du développement.

Créer des applications Web en utilisant PHP et AngularJS Créer des applications Web en utilisant PHP et AngularJS May 27, 2023 pm 08:10 PM

Avec le développement continu d'Internet, les applications Web sont devenues un élément important de la construction de l'information d'entreprise et un moyen nécessaire au travail de modernisation. Afin de faciliter le développement, la maintenance et l'extension des applications Web, les développeurs doivent choisir un cadre technique et un langage de programmation adaptés à leurs besoins de développement. PHP et AngularJS sont deux technologies de développement Web très populaires. Ce sont respectivement des solutions côté serveur et côté client. Leur utilisation combinée peut considérablement améliorer l'efficacité du développement et l'expérience utilisateur des applications Web. Avantages de PHPPHP

Créez une application Web d'une seule page à l'aide de Flask et AngularJS Créez une application Web d'une seule page à l'aide de Flask et AngularJS Jun 17, 2023 am 08:49 AM

Avec le développement rapide de la technologie Web, l'application Web à page unique (SinglePage Application, SPA) est devenue un modèle d'application Web de plus en plus populaire. Par rapport aux applications Web multipages traditionnelles, le plus grand avantage de SPA est que l'expérience utilisateur est plus fluide et que la pression de calcul sur le serveur est également considérablement réduite. Dans cet article, nous expliquerons comment créer un SPA simple à l'aide de Flask et AngularJS. Flask est un Py léger

Utilisez PHP et AngularJS pour développer une plateforme de gestion de fichiers en ligne afin de faciliter la gestion des fichiers Utilisez PHP et AngularJS pour développer une plateforme de gestion de fichiers en ligne afin de faciliter la gestion des fichiers Jun 27, 2023 pm 01:34 PM

Avec la popularité d’Internet, de plus en plus de personnes utilisent le réseau pour transférer et partager des fichiers. Cependant, pour diverses raisons, l'utilisation de méthodes traditionnelles telles que FTP pour la gestion de fichiers ne peut pas répondre aux besoins des utilisateurs modernes. Par conséquent, la création d’une plateforme de gestion de fichiers en ligne facile à utiliser, efficace et sécurisée est devenue une tendance. La plate-forme de gestion de fichiers en ligne présentée dans cet article est basée sur PHP et AngularJS. Elle peut facilement effectuer des opérations de téléchargement, de modification, de suppression et autres, et fournit une série de fonctions puissantes, telles que le partage de fichiers, la recherche,

Introduction aux bases d'AngularJS Introduction aux bases d'AngularJS Apr 21, 2018 am 10:37 AM

Le contenu de cet article concerne l'introduction de base à AngularJS. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer.

Comment utiliser AngularJS en programmation PHP ? Comment utiliser AngularJS en programmation PHP ? Jun 12, 2023 am 09:40 AM

Avec la popularité des applications Web, le framework front-end AngularJS est devenu de plus en plus populaire. AngularJS est un framework JavaScript développé par Google qui vous aide à créer des applications Web dotées de fonctionnalités d'application Web dynamiques. En revanche, pour la programmation backend, PHP est un langage de programmation très populaire. Si vous utilisez PHP pour la programmation côté serveur, utiliser PHP avec AngularJS apportera des effets plus dynamiques à votre site Web.

Comment utiliser PHP et AngularJS pour le développement front-end Comment utiliser PHP et AngularJS pour le développement front-end May 11, 2023 pm 05:18 PM

Avec la popularité et le développement d’Internet, le développement front-end est devenu de plus en plus important. En tant que développeurs front-end, nous devons comprendre et maîtriser divers outils et technologies de développement. Parmi eux, PHP et AngularJS sont deux outils très utiles et populaires. Dans cet article, nous verrons comment utiliser les deux outils pour le développement front-end. 1. Introduction à PHP PHP est un langage de script open source populaire côté serveur. Il convient au développement Web et peut fonctionner sur des serveurs Web et divers systèmes d'exploitation. Les avantages de PHP sont la simplicité, la rapidité et la commodité

See all articles