国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Table des matières
Une (sorte de) brève histoire de: planer
Trois types différents de bibliothèques d'animation tierces
Bibliothèques javascript
Bibliothèques JavaScript et CSS
Bibliothèques CSS
Trois types différents d'animations CSS
Animations en volants
Animations d'attention
Animations de transition
Faisons de l'avant!
Puis-je avoir votre attention s'il vous pla?t?
Déplacer des trucs à l'écart
Insérer un seul élément
Supprimer un seul élément
Sortez de mon chemin, je viens!
Prenez un moment pour considérer…
Laissez un cadre faire le gros du travail pour vous
Effets de survol
Demandeurs d'attention
Transitions
Maison interface Web tutoriel CSS Intégrer des bibliothèques d'animation tierces à un projet

Intégrer des bibliothèques d'animation tierces à un projet

Apr 21, 2025 am 10:00 AM

Intégrer des bibliothèques d'animation tierces à un projet

La création d'animations et de transitions basées sur CSS peut être un défi. Ils peuvent être complexes et longs. Besoin d'aller de l'avant avec un projet avec peu de temps pour modifier la transition parfaite? Considérez une bibliothèque d'animation CSS tierce avec des animations prêtes à l'emploi en attente d'être utilisée. Pourtant, vous pensez peut-être: que sont-ils? Que proposent-ils? Comment les utiliser?

Eh bien, découvrons.

Une (sorte de) brève histoire de: planer

Une fois, le concept d'un état de volants était un exemple trivial de ce qui est offert aujourd'hui. En fait, l'idée d'avoir une réaction au curseur passant au-dessus d'un élément était plus ou moins inexistante. Différentes fa?ons de fournir cette fonctionnalité ont été proposées et implémentées. Cette petite fonctionnalité, en quelque sorte, a ouvert la porte à l'idée que CSS soit capable d'animations pour des éléments sur la page. Au fil du temps, la complexité croissante possible avec ces fonctionnalités a conduit aux bibliothèques d'animation CSS.

Dreamweaver de Macromedia a été introduit en décembre 1997 et a offert ce qui était une fonctionnalité simple, un échange d'image sur le plan de volants. Cette fonctionnalité a été implémentée avec une fonction JavaScript qui serait intégrée dans le HTML par l'éditeur. Cette fonction a été nommée mm_swapimage () et est devenue un peu de folklore de conception Web. C'était un script facile à utiliser, même en dehors de Dreamweaver, et sa popularité a conduit à ce qu'il soit encore utilisé aujourd'hui. Dans mes recherches initiales pour cet article, j'ai trouvé une question concernant cette fonction de 2018 sur Adobe Dreamweaver (Adobe a acquis Macromedia en 2005) Help Forum.

La fonction JavaScript échangerait une image avec une autre image en modifiant l'attribut SRC en fonction des événements MouseOver et Mouseout . Lorsqu'il est mis en ?uvre, cela ressemblait à ceci:

 <a href="#" onmouseout="mm_swapimGrestore ()" onmouseover="mm_swapimage ('ImageName', '', 'newimage.jpg', 1)">
  <img  src="originalMage.jpg" name="ImageName"    style="max-width:90%"  style="max-width:90%" border="0" alt="Intégrer des bibliothèques d'animation tierces à un projet" >
</a>

Selon les normes d'aujourd'hui, il serait assez facile de l'accomplir avec JavaScript et beaucoup d'entre nous pourraient pratiquement le faire dans notre sommeil. Mais considérez que JavaScript était encore ce nouveau langage de script à l'époque (créé en 1995) et se réalisa parfois différemment d'un navigateur à l'autre. La création de JavaScript de croisement n'a pas toujours été une tache facile et tout le monde ne créant pas de pages Web a même écrit JavaScript. (Bien que cela ait certainement changé.) Dreamweaver a offert cette fonctionnalité via un menu de l'éditeur et le concepteur Web n'avait même pas besoin d'écrire le javascript. Il était basé sur un ensemble de ?comportements? qui pouvaient être sélectionnés dans une liste d'options différentes. Ces options pourraient être filtrées par un ensemble de navigateurs ciblés; 3,0 navigateurs, 4,0 navigateurs, IE 3.0, IE 4.0, Netscape 3.0, Netscape 4.0. Ah, le bon vieux temps.

Environ un an après la sortie de Dreamweaver, la spécification CSS2 de W3C a mentionné: planer dans un projet de travail daté de janvier 1998. Il a été spécifiquement mentionné en termes de liens d'ancrage, mais la langue suggère qu'elle aurait pu être appliquée à d'autres éléments. Dans la plupart des fins, il semblerait que ce sélecteur pseudo serait le début d'une alternative facile à mm_swapimage (), car l'image de fond était dans le même projet. Bien que l'assistance du navigateur ait été un problème car il a fallu des années avant que suffisamment de navigateurs aient correctement pris en charge CSS2 pour en faire une option viable pour de nombreux concepteurs de sites Web. Il y avait enfin une recommandation W3C de CSS2.1, cela pourrait être considéré comme la base du CSS ?moderne? tel que nous le connaissons, qui a été publié en juin 2011.

Au milieu de tout cela, JQuery est arrivé en 2006. Heureusement, JQuery a grandement contribué à simplifier le JavaScript parmi les différents navigateurs. Une chose d'intérêt pour notre histoire, la première version de jQuery a offert la méthode Animate (). Avec cette méthode, vous pouvez animer les propriétés CSS sur n'importe quel élément à tout moment; Pas seulement sur le plan de volants. Par sa popularité, cette méthode a exposé la nécessité d'une solution CSS plus robuste dans le navigateur - une solution qui ne nécessiterait pas une bibliothèque JavaScript qui n'était pas toujours très performante en raison des limitations du navigateur.

La pseudo-classe de survol n'a offert qu'un échange dur d'un état à un autre sans support pour une transition en douceur. Cela ne pouvait pas non plus animer des changements dans les éléments en dehors de quelque chose d'aussi basique que de planer sur un élément. La méthode Animate () de JQuery a offert ces fonctionnalités. Cela a ouvert la voie et il n'y avait pas de retour. Au fur et à mesure que les choses se passent dans le monde dynamique du développement Web, un projet de travail pour résoudre ce problème était bien avancé avant la publication de la recommandation de CSS2.1. Le premier projet de travail pour CSS Transitions Module Level 3 a été publié pour la première fois par le W3C en mars 2009. Le premier projet de travail pour le module d'animations CSS Level 3 a été publié à peu près en même temps. Ces deux modules CSS sont toujours dans un statut de projet de travail en octobre 2018, mais bien s?r, nous en utilisons déjà

Donc, ce qui a commencé comme une fonction JavaScript fournis par un tiers, juste pour un simple état de volants, a conduit à des transitions et des animations dans CSS qui permettent des animations élaborées et complexes - la complexité que de nombreux développeurs ne souhaiteraient pas nécessairement considérer car ils doivent se déplacer rapidement sur de nouveaux projets. Nous avons bouclé la boucle; Aujourd'hui, de nombreuses bibliothèques d'animation CSS tierces ont été créées pour compenser cette complexité.

Trois types différents de bibliothèques d'animation tierces

Nous sommes dans ce nouveau monde capable d'animations puissantes, excitantes et complexes dans nos pages et applications Web. Plusieurs idées différentes sont venues au premier plan de la fa?on d'approcher ces nouvelles taches. Ce n'est pas qu'une seule approche est meilleure que toute autre; En effet, il y a beaucoup de chevauchement dans chacun. La différence est davantage sur la fa?on dont nous implémentons et écrivons du code pour eux. Certains sont des bibliothèques JavaScript à part entière, tandis que d'autres sont des collections CSS uniquement.

Bibliothèques javascript

Les bibliothèques qui fonctionnent uniquement via JavaScript offrent souvent des capacités au-delà de ce que fournissent les animations CSS courantes. Habituellement, il y a un chevauchement car les bibliothèques peuvent réellement utiliser les fonctionnalités CSS dans le cadre de leur moteur, mais cela serait abstrait en faveur de l'API. Des exemples de telles bibliothèques sont Greensock et Anime.js. Vous pouvez voir l'étendue de ce qu'ils offrent en regardant les démos qu'ils fournissent (Greensock a une belle collection sur Codepen). Ils sont principalement destinés à des animations très complexes, mais peuvent également être utiles pour des animations plus basiques.

Bibliothèques JavaScript et CSS

Il existe des bibliothèques tierces qui incluent principalement des cours CSS mais fournissent un peu de JavaScript pour une utilisation facile des cours dans vos projets. Une bibliothèque, Micron.js, fournit à la fois une API JavaScript et des attributs de données qui peuvent être utilisés sur les éléments. Ce type de bibliothèque permet une utilisation facile des animations pré-construites que vous pouvez simplement sélectionner. Une autre bibliothèque, Motion UI, est destinée à être utilisée avec un framework JavaScript. Bien que cela fonctionne également sur une notion similaire de mélange d'une API JavaScript, de classes prédéfinies et d'attributs de données. Ces types de bibliothèques fournissent des animations prédéfinies et un moyen facile de les cabler.

Bibliothèques CSS

Le troisième type de bibliothèque est uniquement CSS. En règle générale, ce n'est qu'un fichier CSS que vous chargez via une balise de liaison dans votre HTML. Vous appliquez et supprimez ensuite des classes CSS spécifiques pour utiliser les animations fournies. Deux exemples de ce type de bibliothèque sont Animate.css et animista. Cela dit, il existe même des différences majeures entre ces deux bibliothèques particulières. Animate.css est un package CSS total tandis que Animista fournit une interface lisse pour choisir les animations que vous souhaitez avec du code fourni. Ces bibliothèques sont souvent faciles à mettre en ?uvre, mais vous devez écrire du code pour les utiliser. Ce sont le type de bibliothèques sur lesquelles cet article se concentrera.

Trois types différents d'animations CSS

Oui, il y a un modèle; La règle des trois est partout, après tout.

Dans la plupart des cas, il existe trois types d'animations à considérer lors de l'utilisation de bibliothèques tierces. Chaque type convient à un objectif différent et a des fa?ons différentes de les utiliser.

Animations en volants

Ces animations sont destinées à être impliquées dans une sorte d'état de survol. Ils sont souvent utilisés avec des boutons, mais une autre possibilité consiste à les utiliser pour mettre en évidence les sections sur lesquelles le curseur se trouve. Ils peuvent également être utilisés pour les états de mise au point.

Animations d'attention

Ces animations sont destinées à être utilisées sur des éléments qui sont normalement en dehors du centre visuel de la personne qui consulte la page. Une animation est appliquée à une section de l'écran qui nécessite une attention. De telles animations pourraient être de nature subtile pour des choses qui nécessitent une attention éventuelle mais pas de nature terrible. Ils pourraient également être très distrayants lorsque l'attention immédiate est nécessaire.

Animations de transition

Ces animations sont souvent destinées à avoir un élément en remplacer une autre dans la vue, mais peuvent également être utilisées pour un élément. Ceux-ci comprendront généralement une animation pour ?quitter? la vue et l'animation miroir pour ?saisir? la vue. Pensez à s'évanouir et à s'estomper. Ceci est généralement nécessaire dans les applications d'une seule page car une section de données passerait à un autre ensemble de données, par exemple.

Alors, passons en revue des exemples de chacun de ces types d'animations et comment on pourrait les utiliser.

Faisons de l'avant!

Certaines bibliothèques peuvent déjà être définies pour des effets de survol, tandis que certains ont des états de volants comme objectif principal. Une telle bibliothèque est Hover.css, qui est une solution de dép?t qui fournit une belle gamme d'effets de survol appliqués via les noms de classe. Parfois, cependant, nous voulons utiliser une animation dans une bibliothèque qui ne supporte pas directement la pseudo-classe de survol, car cela pourrait entrer en conflit avec les styles mondiaux.

Pour cet exemple, j'utiliserai l'animation TADA que Fourni.css Animate.css doit. Il est davantage en tant que chercheur d'attention, mais cela suffira bien pour cet exemple. Si vous deviez parcourir le CSS de la bibliothèque, vous constaterez qu'il n'y a pas de pseudo-classe à trouver. Donc, nous devrons le faire fonctionner de cette manière par nous-mêmes.

La classe Tada en soi est simplement la suivante:

 .Tada {
  nom d'animation: tada;
}

Une approche à faible déluge pour réagir à un état de volants est de faire notre propre copie locale de la classe, mais de l'étendre un peu. Normalement, Animate.CSS est une solution de dép?t, nous n'aurons donc pas nécessairement la possibilité de modifier le fichier CSS d'origine; Bien que vous puissiez avoir votre propre copie locale du fichier si vous le souhaitez. Par conséquent, nous créons uniquement le code dont nous avons besoin pour être différent et laissons la bibliothèque gérer le reste.

 .Tada-Hover: Hover {
  nom d'animation: tada;
}

Nous ne devrions probablement pas remplacer le nom de classe d'origine au cas où nous voulons réellement l'utiliser ailleurs. Ainsi, au lieu de cela, nous faisons une variation que nous pouvons placer: planer la pseudo-classe sur le sélecteur. Maintenant, nous utilisons simplement la classe animée requise de la bibliothèque avec notre classe Tada-Hover personnalisée sur un élément et il jouera cette animation sur Hover.

Si vous ne vouliez pas créer une classe personnalisée de cette manière, mais préférez une solution JavaScript à la place, il existe un moyen relativement facile de gérer cela. Curieusement, c'est une méthode similaire à la méthode mm_imageswap () de Dreamweaver dont nous avons discuté plus t?t.

 // Sélectionnons les éléments avec id #js_example
var js_example = document.QuerySelector ('# js_example');

// Lorsque les éléments avec ID #js_example sont planés ...
js_example.addeventListener ('MouseOver', function () {
  // ... Ajoutons deux classes à l'élément: animé et tada ...
  this.classList.add (?animé?, ?tada?);
});
// ... puis supprimez ces classes lorsque la souris n'est pas sur l'élément.
js_example.addeventListener ('Mouseout', function () {
  this.classlist.remove (?animé?, ?tada?);
});

Il existe en fait plusieurs fa?ons de gérer cela, selon le contexte. Ici, nous créons des auditeurs d'événements pour attendre les événements de souris et de souris. Ces auditeurs s'appliquent et suppriment ensuite les classes animées et TADA de la bibliothèque selon les besoins. Comme vous pouvez le voir, étendre un peu une bibliothèque tiers pour répondre à nos besoins peut être accompli de manière relativement facile.

Puis-je avoir votre attention s'il vous pla?t?

Un autre type d'animation que les bibliothèques tierces peuvent aider sont les demandeurs d'attention. Ces animations sont utiles lorsque vous souhaitez attirer l'attention sur un élément ou une section de la page. Quelques exemples de cela pourraient être des notifications ou des entrées de formulaire requises non remplies. Ces animations peuvent être subtiles ou directes. Subtil pour quand quelque chose nécessite une attention éventuelle mais n'a pas besoin d'être résolu immédiatement. Direct pour quand quelque chose a besoin de résolution maintenant.

Certaines bibliothèques ont de telles animations dans l'ensemble du package, tandis que certains sont construits spécifiquement à cet effet. Animate.css et animista ont des animations à la recherche d'attention, mais ce ne sont pas l'objectif principal de ces bibliothèques. Un exemple de bibliothèque construit à cet effet serait CSShake. La bibliothèque à utiliser dépend des besoins du projet et du temps que vous souhaitez investir dans leur mise en ?uvre. Par exemple, CSShake est prêt à aller avec peu de problèmes de votre part - appliquez simplement les cours au besoin. Bien que, si vous utilisiez déjà une bibliothèque comme Animate.css, vous ne voudrez probablement pas introduire une deuxième bibliothèque (pour les performances, la dépendance aux dépendances, etc.).

Ainsi, une bibliothèque telle que Animate.css peut être utilisée mais a besoin d'un peu plus de configuration. La page GitHub de la bibliothèque propose des exemples de comment procéder. Selon les besoins d'un projet, la mise en ?uvre de ces animations en tant que demandeurs d'attention est plut?t simple.

Pour un type d'animation subtil, nous pourrions en avoir un qui répète simplement un nombre de fois et des arrêts. Cela consiste généralement à ajouter les classes de la bibliothèque, à appliquer une propriété d'itération d'animation à CSS et à attendre l'événement de fin d'animation pour effacer les classes de la bibliothèque.

Voici un exemple simple qui suit le même schéma que nous avons examiné plus t?t pour les états de survol:

 var pulse = document.QuerySelector ('# Pulse');

fonction playPulse () {
  pulse.classList.add (?animé?, ?Pulse?);
}

pulse.addeventListener ('AnimationEnd', fonction () {
  pulse.classlist.remove (?animé?, ?Pulse?);
});

playPulse ();

Les classes de bibliothèque sont appliquées lorsque la fonction PlayPulse est appelée. Il y a un écouteur d'événements pour l'événement AnimationEnd qui supprimera les classes de la bibliothèque. Normalement, cela ne jouerait qu'une seule fois, mais vous voudrez peut-être répéter plusieurs fois avant de vous arrêter. Animate.css ne fournit pas de classe pour cela, mais il est assez facile d'appliquer une propriété CSS pour que notre élément le gérera.

 #pulse {
  compte d'animation-itération: 3; / * S'arrêter après trois fois * /
}

De cette fa?on, l'animation jouera trois fois avant de s'arrêter. Si nous devions arrêter l'animation plus t?t, nous pouvons supprimer manuellement les classes de bibliothèque en dehors de la fonction AnimationEnd. La documentation de la bibliothèque fournit en fait un exemple de fonction réutilisable pour appliquer les classes qui les suppriment après l'animation; très similaire au code ci-dessus. Il serait même assez facile de l'étendre pour appliquer le nombre d'itération à l'élément.

Pour une approche plus directe, disons une animation infinie qui ne s'arrêtera qu'après une sorte d'interaction utilisateur. Imaginons que cliquer sur l'élément est ce qui recommence l'animation et cliquer à nouveau l'arrête. Gardez à l'esprit que, comme vous souhaitez commencer et arrêter l'animation dépend de vous.

 var bounce = document.QuerySelector ('# Bounce');

Bounce.addeventListener ('click', function () {
  if (! Bounce.classList.Contains ('Animated')) {
    Bounce.classList.add (?Animated?, ?Bounce?, ?Infinite?);
  } autre {
    Bounce.classList.remove (?Animated?, ?Bounce?, ?Infinite?);
  }
});

Assez simple. En cliquant sur l'élément, les tests si la classe ?animée? de la bibliothèque a été appliquée. Si ce n'est pas le cas, nous appliquons les classes de bibliothèque afin qu'elle commence l'animation. S'il a les classes, nous les supprimons pour arrêter l'animation. Remarquez cette classe infinie à la fin de la liste de classe. Heureusement, Animate.CSS fournit cela pour nous prêt à l'emploi. Si votre bibliothèque de choix n'offre pas une telle classe, c'est ce dont vous avez besoin dans votre CSS:

 #rebond {
  Animation-iteration-Count: Infinite;
}

Voici une démo montrant comment ce code se comporte:

Déplacer des trucs à l'écart

Lors de la recherche pour cet article, j'ai constaté que les transitions (à ne pas confondre avec les transitions CSS) sont facilement le type d'animations les plus courantes dans les bibliothèques tierces. Ce sont des animations simples qui sont con?ues pour permettre à un élément d'entrer ou de quitter la page. Un modèle très courant vu dans les applications modernes à page unique est d'avoir un élément quitter la page tandis qu'un autre le remplace en entrant dans la page. Pensez au premier élément qui s'estompe et à la deuxième dispara?tre. Cela pourrait être de remplacer les anciennes données par de nouvelles données, de passer au panneau suivant dans une séquence ou de passer d'une page à une autre avec un routeur. Sarah Drasner et Georgy Marchuk ont ??d'excellents exemples de ces types de transitions.

Pour la plupart, les bibliothèques d'animation ne fourniront pas les moyens de supprimer et d'ajouter des éléments pendant les animations de transition. Les bibliothèques qui fournissent un JavaScript supplémentaire peuvent en fait avoir cette fonctionnalité, mais comme la plupart ne le font pas, nous discuterons de la fa?on de gérer cette fonctionnalité maintenant.

Insérer un seul élément

Pour cet exemple, nous utiliserons à nouveau Animate.css comme bibliothèque. Dans ce cas, j'utiliserai l'animation Fadeindown.

Maintenant, gardez à l'esprit qu'il existe de nombreuses fa?ons de gérer l'insertion d'un élément dans le DOM et je ne souhaite pas les couvrir ici. Je vais juste montrer comment tirer parti d'une animation pour rendre l'insertion plus agréable et plus naturelle que l'élément qui appara?t simplement. Pour animate.css (et probablement de nombreuses autres bibliothèques), l'insertion d'un élément avec l'animation est assez facile.

 Selt insertElement = Document.CreateElement ('div');
insertElement.innerText = 'Ce div est inséré';
insertement.classlist.add (?animé?, ?fadeInDown?);

insertement.addeventListener ('AnimationEnd', function () {
  this.classlist.remove ('animé', 'fadeindown');
});

document.body.append (insertElement);

Cependant, vous décidez de créer l'élément n'a pas grand-chose d'importance; Il vous suffit de vous assurer que les classes nécessaires sont déjà appliquées avant d'insérer l'élément. Ensuite, cela s'animera bien en place. J'ai également inclus un auditeur d'événements pour l'événement AnimationEnd qui supprime les classes. Comme d'habitude, il existe plusieurs fa?ons de procéder et c'est probablement le moyen le plus direct de le gérer. La raison de la suppression des classes est de faciliter l'inverser le processus si nous le souhaitons. Nous ne voudrions pas que l'animation entre en concurrence avec une animation quittant.

Supprimer un seul élément

La suppression d'un seul élément est en quelque sorte similaire à l'insertion d'un élément. L'élément existe déjà, nous appliquons donc simplement les classes d'animation souhaitées. Ensuite, lors de l'événement AnimationEnd, nous supprimons l'élément du DOM. Dans cet exemple, nous utiliserons l'animation Fadeoutdown de Animate.css car cela fonctionne bien avec l'animation Fadeindown.

 LET REPOreElement = Document.QuerySelector ('# devoieElement');

retireElement.addeventListener ('AnimationEnd', fonction () {
  this.remove ();
});

devoyelement.classList.add (?animé?, ?fadeoutdown?);

Comme vous pouvez le voir, nous ciblons l'élément, ajoutons les classes et supprimons l'élément à la fin de l'animation.

Un problème avec tout cela est qu'avec l'insertion et la suppression des éléments de cette fa?on, les autres éléments de la page sautent pour s'adapter. Vous devrez en tenir compte d'une manière ou d'une autre, probablement avec CSS et la disposition de la page pour garder un espace constant pour les éléments.

Sortez de mon chemin, je viens!

Maintenant, nous allons échanger deux éléments, l'un partant tandis qu'un autre entre. Il existe plusieurs fa?ons de gérer cela, mais je vais fournir un exemple qui combine essentiellement les deux exemples précédents.

Je vais passer en revue le javascript en parties pour expliquer comment cela fonctionne. Tout d'abord, nous mettons en cache une référence à un bouton et le conteneur pour les deux éléments. Ensuite, nous créons deux bo?tes qui seront échangées à l'intérieur du conteneur.

 LET Button = document.QuerySelector ('Button');
Selt Container = Document.QuerySelector ('. Container');
LET BOX1 = Document.CreateElement ('Div');
LET BOX2 = Document.CreateElement ('Div');

J'ai une fonction générique pour supprimer les classes d'animation pour chaque événement AnimationEnd.

 LET ROUVERCLASSES = fonction () {
  box1.classlist.remove (?animé?, ?fadeuTright?, ?fadeinleft?);
  box2.classlist.remove (?animé?, ?fadeuTright?, ?fadeinleft?);
}

La fonction suivante est la majeure partie de la fonctionnalité d'échange. Tout d'abord, nous déterminons la bo?te actuelle affichée. Sur la base de cela, nous pouvons déduire les éléments de départ et d'entrée. L'élément de départ obtient l'écouteur d'événements qui a appelé la fonction Switchements supprimée en premier, nous ne nous trouvons pas dans une boucle d'animation. Ensuite, nous supprimons l'élément de départ du conteneur depuis que son animation est terminée. Ensuite, nous ajoutons les classes d'animation à l'élément entrant et l'ajoutons au conteneur afin qu'il s'anime en place.

 Laissez switchements = fonction () {
  Laissez CurrentElement = Document.QuerySelector ('. Container .box');
  Laissez LeleshElement = currentElement.classList.Contains ('Box1')? Box1: Box2;
  Laissez entéRelement = LeaveLelement === Box1? Box2: Box1;
  
  LeleshElement.RemoveEventListener (?AnimationEnd?, Switchements);
  LETTERELENT.REMOVE ();
  enterelement.classlist.add (?animé?, ?fadeinleft?);
  contener.append (Enterement);
}

Nous devons faire une configuration générale pour les deux cases. De plus, nous ajoutons la première bo?te au conteneur.

 box1.classlist.add ('box', 'box1');
box1.addeventListener (?AnimationEnd?, RemoveClasses);
box2.classList.add ('box', 'box2');
box2.AddeventListener ('AnimationEnd', reposoveclasses);

contener.ApendChild (Box1);

Enfin, nous avons un écouteur d'événements de clic pour notre bouton qui fait le basculement. La fa?on dont ces séquences d'événements sont démarrées dépend techniquement de vous. Pour cet exemple, j'ai décidé d'un simple clic de bouton. Je détermine quelle bo?te est actuellement affichée, qui va partir, pour appliquer les classes appropriées pour que l'animer. Ensuite, j'applique un écouteur d'événements pour l'événement AnimationEnd qui appelle la fonction Switchements indiquée ci-dessus qui gère l'échange réel.

 Button.AdDeventListener ('click', function () {
  Laissez CurrentElement = Document.QuerySelector ('. Container .box');
  
  if (currentElement.classList.Contains ('Box1')) {
    box1.classlist.add (?animé?, ?fadeUtright?);
    box1.addeventListener (?AnimationEnd?, Switchements);
  } autre {
    box2.classList.add (?animé?, ?fadeuTright?);
    box2.addeventListener (?AnimationEnd?, Switchements);
  }
}

Un problème évident avec cet exemple est qu'il est extrêmement codé pour cette seule situation. Cependant, il peut être facilement étendu et ajusté pour différentes situations. Ainsi, l'exemple est utile en termes de compréhension d'une fa?on de gérer une telle tache. Heureusement, certaines bibliothèques d'animation, comme MotionUi, fournissent un peu de javascript pour aider les transitions des éléments. Une autre chose à considérer est que certains frameworks JavaScript, tels que Vuejs, ont des fonctionnalités pour aider à l'animation des transitions d'éléments.

J'ai également créé un autre exemple qui fournit un système plus flexible. Il se compose d'un conteneur qui stocke les références pour laisser et entrer des animations avec des attributs de données. Le conteneur contient deux éléments qui changeront les places sur la commande. La fa?on dont cet exemple est construit est que les animations sont facilement modifiées dans les attributs de données via JavaScript. J'ai également deux conteneurs dans la démo; L'un utilisant Animate.css et l'autre utilisant Animista pour les animations. C'est un grand exemple, donc je n'examinerai pas le code ici; Mais il est fortement commenté, alors jetez un coup d'?il si cela est intéressant.

Prenez un moment pour considérer…

Tout le monde veut-il réellement voir toutes ces animations? Certaines personnes pourraient considérer nos animations excessives et inutiles, mais pour certains, ils peuvent en fait causer des problèmes. Il y a quelque temps, WebKit a introduit la requête médiatique préfabriquée en mouvement réduit pour aider aux éventuels problèmes de troubles du spectre vestibulaire. Eric Bailey a également publié une belle introduction à la requête médiatique, ainsi qu'un suivi avec des considérations pour les meilleures pratiques. Lisez-les définitivement.

Alors, votre bibliothèque d'animation de choix prend-elle en charge le mouvement préfabriqué? Si la documentation ne le dit pas, vous devrez peut-être supposer que ce n'est pas le cas. Bien qu'il soit assez facile de vérifier le code de la bibliothèque pour voir s'il y a quelque chose pour la requête multimédia. Par exemple, Animate.css l'a dans le fichier partiel _base.scss.

 @media (print), (préfère le mouvement réduit) {
  .animation {
    Animation: Unset! IMPORTANT;
    Transition: Aucun! IMPORTANT;
  }
}

Ce bit de code fournit également un excellent exemple de la fa?on de le faire par vous-même si la bibliothèque ne le prend pas en charge. Si la bibliothèque a une classe commune qu'il utilise - comme Animate.css utilise ?animé? - alors vous pouvez simplement cibler cette classe. S'il ne prend pas en charge une telle classe, vous devrez cibler la classe d'animation réelle ou créer votre propre classe personnalisée à cet effet.

 .Scale-up-Center {
  Animation: Scale-Up-Center 0,4 s cube-Bezier (0,390, 0,575, 0,565, 1.000);
}

@KeyFrames Scale-Up-Center {
  0% {transform: échelle (0,5); }
  100% {transform: échelle (1); }
}

@media (print), (préfère le mouvement réduit) {
  .Scale-up-Center {
    Animation: Unset! IMPORTANT;
    Transition: Aucun! IMPORTANT;
  }
}

Comme vous pouvez le voir, je viens d'utiliser l'exemple tel que fourni par Animate.css et ciblé la classe d'animation d'Animista. Gardez à l'esprit que vous devrez répéter ceci pour chaque classe d'animation que vous choisissez d'utiliser dans la bibliothèque. Bien que, dans la pièce de suivi d'Eric, il suggère de traiter toutes les animations comme une amélioration progressive et cela pourrait être une fa?on de réduire le code et de faire une expérience utilisateur plus accessible.

Laissez un cadre faire le gros du travail pour vous

à bien des égards, les différents cadres tels que React et Vue peuvent faciliter l'utilisation de l'animation CSS tiers que avec Vanilla JavaScript, principalement parce que vous n'avez pas à cabler les swaps de classe ou les événements d'animation et d'animation manuellement. Vous pouvez tirer parti des fonctionnalités que les cadres fournissent déjà. La beauté de l'utilisation de cadres est qu'ils fournissent également plusieurs fa?ons différentes de gérer ces animations en fonction des besoins du projet. Les exemples ci-dessous ne sont qu'un petit exemple d'options.

Effets de survol

Pour les effets de survol, je suggère de les installer avec CSS (comme je l'ai suggéré ci-dessus) comme la meilleure fa?on de procéder. Si vous avez vraiment besoin d'une solution JavaScript dans un cadre, comme Vue, ce serait quelque chose comme ceci:

 <button mouseover="Over ($ Event, 'Tada')" mouseleave="LETT ($ Event, 'Tada')">
  tada
 bouton></button>
 Méthodes: {
  sur: fonction (e, type) {
    e.target.classList.add (?animé?, type);
  },
  quitter: fonction (e, type) {
    e.target.classList.Remove (?Animated?, type);
  }
}

Pas vraiment très différent de la solution JavaScript de vanille ci-dessus. De plus, comme auparavant, il existe de nombreuses fa?ons de gérer cela.

Demandeurs d'attention

La mise en place des chercheurs d'attention est en fait encore plus facile. Dans ce cas, nous appliquons simplement les classes dont nous avons besoin, encore une fois, en utilisant Vue comme exemple:

 <div:> Pulse 

<div:> rebond </div:></div:>

Dans l'exemple d'impulsion, chaque fois que l'ispulse booléen est vrai, les deux classes sont appliquées. Dans l'exemple de rebond, chaque fois que le booléen isbounce est vrai, les classes animées et rebond sont appliquées. La classe infinie est appliquée malgré tout afin que nous puissions avoir notre rebond sans fin jusqu'à ce que le booléen Isbounce retourne à False.

Transitions

Heureusement, le composant de transition de Vue offre un moyen facile d'utiliser des classes d'animation tierces avec des classes de transition personnalisées. D'autres bibliothèques, telles que React, pourraient offrir des fonctionnalités ou des modules complémentaires similaires. Pour utiliser les classes d'animation dans Vue, nous les implémentez simplement dans le composant de transition.

 <transition enter-actif- laisse-actif- mode="out-in">
  <div v-if="toggle" key="if"> if Exemple  div>
  <div v-else key="else"> else Exemple </div>
transition><p> En utilisant Animate.css, nous appliquons simplement les classes nécessaires. Pour enter-actif, nous appliquons la classe animée requise avec Fadeindown. Pour les congés, nous appliquons la classe animée requise avec Fadeoutdown. Pendant la séquence de transition, ces classes sont insérées aux moments appropriés. Vue gère l'insertion et la suppression des classes pour nous.</p>
<p> Pour un exemple plus complexe d'utiliser des bibliothèques d'animation tierces dans un cadre JavaScript, explorez ce projet: </p>
<p data-height="532" style="height: 532px; display: flex; align-items: center; justify-content: center; border: 2px solid black; margin: 1rem 0; padding: 1rem; overflow: auto;" data-theme- data-default-tab="result" data-user="talmand" data-slug-hash="KLKdJy" data-pen-title="KLKdJy"></p>
<p></p>
<h3> Rejoignez la fête!</h3>
<p> Il s'agit d'un petit go?t des possibilités qui attendent votre projet car il existe de nombreuses bibliothèques d'animation CSS tierces à explorer. Certains sont approfondis, excentriques, spécifiques, désagréables ou tout simplement simples. Il existe des bibliothèques pour des animations JavaScript complexes telles que Greensock ou Anime.js. Il y a même des bibliothèques qui cibleront les caractères dans un élément.</p>
<p> J'espère que tout cela vous inspirera à jouer avec ces bibliothèques sur le chemin de la création de vos propres animations CSS.</p>
</div></transition>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

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.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Guide de construction d'Agnes Tachyon | Un joli Musume Derby
2 Il y a quelques semaines By Jack chen
Oguri Cap Build Guide | Un joli Musume Derby
2 Il y a quelques semaines By Jack chen
Péx: comment raviver les joueurs
4 Il y a quelques semaines By DDD
Guide de construction de Grass Wonder | Uma musume joli derby
1 Il y a quelques semaines By Jack chen
Pic comment émoter
3 Il y a quelques semaines By Jack chen

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)

Qu'est-ce que le ?rendu CSS bloquant le rendu?? Qu'est-ce que le ?rendu CSS bloquant le rendu?? Jun 24, 2025 am 12:42 AM

CSS bloque le rendu de la page car les navigateurs affichent le CSS en ligne et le CSS externe comme des ressources clés par défaut, en particulier avec les feuilles de styles importées, les grandes quantités de CSS en ligne et les styles de requête multimédia non optimisés. 1. Extraire CSS critique et l'intégrez-la dans HTML; 2. Retard Chargement CSS non critique via JavaScript; 3. Utilisez des attributs multimédias pour optimiser le chargement tel que les styles d'impression; 4. Comprimer et fusionner CSS pour réduire les demandes. Il est recommandé d'utiliser des outils pour extraire les CS de clé, combiner le chargement asynchrone rel = "précharge" et utiliser le chargement retardé des médias raisonnablement pour éviter une division excessive et un contr?le de script complexe.

Qu'est-ce que l'autoprefixer et comment ?a marche? Qu'est-ce que l'autoprefixer et comment ?a marche? Jul 02, 2025 am 01:15 AM

AutoPrefixer est un outil qui ajoute automatiquement les préfixes des fournisseurs aux attributs CSS en fonction de la portée du navigateur cible. 1. Il résout le problème de maintenir manuellement les préfixes avec des erreurs; 2. Travaillez le formulaire de plug-in PostCSS, analyse CSS, analysez les attributs qui doivent être préfixés et générer du code en fonction de la configuration; 3. Les étapes d'utilisation incluent l'installation de plug-ins, la définition de la liste de navigateurs et leur permettant dans le processus de construction; 4. Les notes ne comprennent pas manuellement les préfixes, le maintien des mises à jour de la configuration, les préfixes pas tous des attributs, et il est recommandé de les utiliser avec le préprocesseur.

Quelle est la fonction conique-gradient ()? Quelle est la fonction conique-gradient ()? Jul 01, 2025 am 01:16 AM

THECONCON-GRADIENT () FURMATINGEnSSSCREATSCICLULARD GRODIENTSTHATATATECOLORSTOPSAROUNDacentralpoint.1.IiSIDEALFORPIECHARTS, PROGRESSINDICATEURS, Colorweels, andDecorativeBackgrounds.2.itworksByDefiningColOrStopSatSpiecificangles, FactuallylyTartingfromadefinin

Tutoriel CSS pour créer un en-tête ou un pied de page collant Tutoriel CSS pour créer un en-tête ou un pied de page collant Jul 02, 2025 am 01:04 AM

TOCREATESTICKYHEADERSERSANDFOOTERS WITHCSS, USEPOSITION: StickyforhederswithTopValueAndz-Index, assurant leparentContainerson’trestrictit.1.Forstickyheders: SetPosition: Sticky, Top: 0, Z-index, AndbackgroundColor.2

Quelle est la portée d'une propriété personnalisée CSS? Quelle est la portée d'une propriété personnalisée CSS? Jun 25, 2025 am 12:16 AM

La portée des propriétés personnalisées de CSS dépend du contexte de leur déclaration, les variables globales sont généralement définies dans: Root, tandis que les variables locales sont définies dans un sélecteur spécifique pour la composontisation et l'isolement des styles. Par exemple, les variables définies dans la classe de cartes. Ne sont disponibles que pour des éléments qui correspondent à la classe et à leurs enfants. Les meilleures pratiques incluent: 1. Utilisation: racine pour définir des variables globales telles que la couleur du sujet; 2. Définir les variables locales à l'intérieur du composant pour implémenter l'encapsulation; 3. évitez de déclarer à plusieurs reprises la même variable; 4. Faites attention aux problèmes de couverture qui peuvent être causés par la spécificité du sélecteur. De plus, les variables CSS sont sensibles à la casse et doivent être définies avant utilisation pour éviter les erreurs. Si la variable n'est pas définie ou si la référence échoue, la valeur de retour ou la valeur par défaut initiale sera utilisée. Le débogage peut être fait par le biais du développeur du navigateur

Que sont les unités FR dans la grille CSS? Que sont les unités FR dans la grille CSS? Jun 22, 2025 am 12:46 AM

ThefunicsssgridDistRributesAsavailablespacepororyally.1.itWorksByDividingspacebasedonthesumroffrValues, par exemple, 1FR2FrgivesOne-Thirdandtwo-Third.

Tutoriel CSS axé sur la conception mobile d'abord Tutoriel CSS axé sur la conception mobile d'abord Jul 02, 2025 am 12:52 AM

Mobile-FirstcssDesigrequequetsettingTheViewportMetatag, UsingrelativeUnits, StylingFromsMallScreensup, OptimizingTypographicAndTouchtarget.First, addtiControlsaling.second, use%, em, orreminsteadofpixel

Pouvez-vous nicher un conteneur Flexbox à l'intérieur d'un élément de grille CSS? Pouvez-vous nicher un conteneur Flexbox à l'intérieur d'un élément de grille CSS? Jun 22, 2025 am 12:40 AM

Oui, vous pouvez utiliser Flexbox dans les éléments CSSGrid. L'approche spécifique consiste à diviser d'abord la structure de la page avec la grille et à définir le sous-continent dans une cellule de grille en tant que conteneur flexible pour obtenir un alignement et une arrangement plus fins; Par exemple, nid un div avec affichage: style flex en html; Les avantages de le faire incluent la disposition hiérarchique, la conception réactive plus facile et le développement de composants plus convivial; Il est nécessaire de noter que l'attribut d'affichage n'affecte que les éléments enfants directs, évite la nidification excessive et considère les problèmes de compatibilité des anciens navigateurs.

See all articles