Performant Animations Using KUTE.js Partie 5, Fonctions et attributs d'assouplissement

Jusqu'à présent dans cette série, vous avez appris à animer les propriétés CSS de différents éléments, à créer différentes animations relatives à SVG et à animer le contenu textuel de différents éléments sur une page Web. KUTE.js vous permet d’animer les éléments d’une page Web d’une autre manière: en modifiant les valeurs de différents attributs. Cela nécessite que vous incluiez le plugin d'attributs dans votre projet.

Dans ce tutoriel, vous allez apprendre à utiliser le plug-in d'attributs pour animer la valeur de différents types d'attributs dans KUTE.js. Nous aborderons également différentes fonctions d’accélération que vous pouvez utiliser pour contrôler le rythme de différentes animations..

Fonctions d'accélération

Les objets dans la vie réelle se déplacent très rarement de manière linéaire. Ils accélèrent ou décélèrent. Même l'accélération et la décélération se produisent à des amplitudes différentes. Jusqu'ici, toutes nos animations ont progressé linéairement. Cela ne semble pas naturel du tout. Dans cette section, vous découvrirez toutes les fonctions d’assouplissement que KUTE.js fournit pour contrôler le rythme de différentes animations..

Les fonctions principales d’assouplissement de la bibliothèque sont incluses dans le moteur principal. Disons que vous voulez appliquer le QuadraticInOut assouplissement à une animation. Ceci peut être réalisé de deux manières:

easing: KUTE.Easing.easingQuadraticInOut // OU atténuation: 'easingQuadraticInOut'

Chacune des fonctions d'accélération possède une courbe unique qui détermine la manière dont les éléments vont accélérer pendant l'animation. UNE sinusoïdal courbe implique une accélération linéaire. Gardez à l’esprit que c’est différent du linéaire fonction d'accélération. le linéaire fonction implique une vitesse d'animation linéaire, tandis qu'une courbe sinusoïdale implique une vitesse d'accélération linéaire pour l'animation. En d'autres termes, la vitesse de l'animation augmentera ou diminuera de manière linéaire. De même, quadratique implique une accélération avec une puissance de deux, cubique implique une puissance de trois, quart implique un pouvoir de quatre, et quintic implique un pouvoir de cinq. Il y a aussi circulaire et exponentiel fonctions d'assouplissement.

Vous pouvez annexer Dans, En dehors, ou InOut à l'une des fonctions d'assouplissement. La valeur Dans implique que l’animation commence très lentement et continue à accélérer jusqu’à la fin. La valeur En dehors implique que l’animation commence à la vitesse maximale puis décélère lentement jusqu’à ce qu’elle s’arrête à la fin. La valeur InOut signifie que l'animation va accélérer au début et ralentir à la fin.

Vous pouvez aussi utiliser rebondir et élastique allégement des fonctions dans vos animations et ajout Dans, En dehors, ou InOut à l'un d'eux. Dans la démo suivante, j'ai appliqué toutes ces fonctions d'accélération sur différents cercles afin que vous puissiez voir comment elles affectent le rythme de l'animation..

Il est possible qu'aucune des fonctions d'accélération principales ne fournisse le rythme d'animation que vous recherchez. Dans de tels cas, vous pouvez inclure les fonctions Cubic Bezier dans votre projet à partir de la branche Experiences et commencer à utiliser ces fonctions d'accélération.. 

De même, KUTE.js fournit également des fonctions d’accélération basées sur la physique et importées de la bibliothèque Dynamics.js. Vous pouvez en savoir plus sur toutes ces fonctions d’accélération et sur la façon de les utiliser correctement sur la page correspondante de la bibliothèque..

Animation des attributs

Les attributs en SVG peuvent accepter des nombres ainsi que des chaînes comme valeur. Les chaînes peuvent être des valeurs de couleurs ou des nombres suffixés avec une unité comme px, em, ou %. Les noms des attributs eux-mêmes peuvent également consister en deux mots reliés par un trait d'union. Tenant compte de ces différences, KUTE.js nous fournit différentes méthodes pouvant être utilisées pour spécifier les valeurs de différents attributs..

var tween = KUTE.to ('sélecteur', attr: 'r': 100); var tween = KUTE.to ('sélecteur', attr: 'r': '10% '); var tween = KUTE.to ('sélecteur', attr: 'stroke-width': 10); var tween = KUTE.to ('sélecteur', attr: strokeWidth: 10);

Comme vous pouvez le constater, les valeurs suffixées doivent être placées entre guillemets. De même, les attributs contenant un trait d'union dans leur nom doivent être placés entre guillemets ou spécifiés sous la forme camelCase.

Attributs sans unité

Beaucoup d'attributs acceptent les valeurs sans unité. Par exemple, le largeur du trait d'un chemin pourrait être sans unité. De même, vous n'avez pas à spécifier une unité pour le r, cx, et cy attributs d'un élément de cercle. Vous pouvez animer tous ces attributs d'une valeur à une autre en utilisant le plugin d'attributs. 

Maintenant que vous savez utiliser différentes fonctions d'accélération, vous pourrez animer différents attributs à des rythmes différents. Voici un exemple:

var radiusAnimation = KUTE.allTo ("circle", attr: r: 75, repeat: 1, yoyo: true, offset: 1000, easing: 'easingCubicIn'); var centerxAnimationA = KUTE.to ("# cercle-a", attr: cx: 500, répétition: 1, yoyo: vrai, easing: 'easingCubicInOut',); var centerxAnimationB = KUTE.to ("# cercle-b", attr: cx: 100, répétition: 1, yoyo: vrai, easing: 'easingCubicInOut'); var centeryAnimation = KUTE.allTo ("circle", attr: cy: 300, repeat: 1, yoyo: true, offset: 1000, easing: 'easingCubicOut');

La première interpolation anime le rayon des deux cercles à la fois à l'aide de la touche touspour () méthode, nous avons discuté dans le premier tutoriel. Si réglé à vrai, la yo-yo attribut joue l'animation en sens inverse. 

le cx L'attribut des deux cercles est animé individuellement. Cependant, ils sont tous deux déclenchés par le même clic de bouton. Finalement, le cy L’attribut des deux cercles est animé à la fois par un décalage de 1000 millisecondes.

Attributs de couleur

À partir de la version 1.5.7, le plug-in d'attribut de KUTE.js vous permet également d'animer le remplir, accident vasculaire cérébral, et stopColor les attributs. Vous pouvez utiliser des noms de couleurs valides ou des valeurs hexadécimales pour les couleurs. Vous pouvez également fournir les valeurs de couleur au format RVB ou HSL. 

Il est important de garder à l’esprit que les animations ne fonctionneront que si vous ne définissez pas la valeur de ces propriétés en CSS. Dans la démo suivante, le remplir la couleur n'aurait pas du tout été animée si j'avais ajouté le CSS suivant dans notre démo.

rect remplissage: marron; 

La démo que j'ai créée est très basique, mais vous pouvez la rendre plus intéressante en appliquant des transformations et en utilisant plus de couleurs..

Attributs suffixés

Beaucoup d'attributs SVG comme r et largeur du trait peut travailler avec et sans suffixes. Par exemple, vous pouvez définir la valeur de r être un nombre comme 10 ou en termes d'unités comme 10em. Il y a quelques attributs comme décalage attribut pour les arrêts de couleur qui nécessitent toujours l’ajout d’un suffixe. Lorsque vous spécifiez une valeur pour les attributs avec suffixe dans KUTE.js, veillez toujours à placer la valeur entre guillemets..

Dans l'exemple suivant, j'ai animé la valeur de décalage du premier arrêt dans un dégradé et la couleur du deuxième arrêt. Puisque décalage nécessite un suffixe, j'ai joint la valeur entre guillemets.

var offsetAnimation = KUTE.allTo (".stop1", attr: offset: '90% ', repeat: 1, offset: 1000, yoyo: true, easing:' easingCubicIn '); var colorAnimation = KUTE.allTo (".stop2", attr: stopColor: 'black', repeat: 1, offset: 1000, yoyo: true, easing: 'easingCubicIn'); var scaleAnimation = KUTE.allTo ("circle", svgTransform: scale: 2, repeat: 1, offset: 1000, yoyo: true, easing: 'easingCubicIn');

Il y a trois gradients différents dans la démo et chacun de ces gradients a deux arrêts de couleur avec les noms de classe. stop1 et stop2. J'ai également appliqué une transformation d'échelle à l'aide du svgTransform attribut, que nous avons discuté dans le troisième tutoriel de la série.

Dernières pensées

Dans ce didacticiel, vous avez découvert différentes fonctions d’accélération disponibles dans KUTE.js et comment les utiliser pour contrôler le rythme de vos propres animations. Vous avez également appris à animer différents types d'attributs.

J'ai essayé de couvrir tous les aspects importants de KUTE.js de cette série. Cela devrait être suffisant pour vous aider à utiliser KUTE.js avec confiance dans vos propres projets. Vous pouvez également lire la documentation pour en savoir plus sur la bibliothèque.. 

Je vous recommanderais également de consulter le code source et de voir comment fonctionne réellement la bibliothèque. Si vous avez des questions ou des conseils en rapport avec ce didacticiel, n'hésitez pas à les partager dans les commentaires..