Second décryptage : Fire Loader de Jitendra
Ce second exemple est un petit peu plus complexe au niveau de l'animation, et c'est donc sur ce point que nous allons le plus nous concentrer. D'un point de vue éléments, nous avons #nightfirewood, composés de deux rectangles croisés grace à une rotation.
Au-dessus, nous avons nos trois flammes, qui sont de simples carrés ayant là aussi subi une rotation. Je n'ai pratiquement pas touché le code de l'auteur, si ce n'est pour corriger les noms des classes, variables et animations pour une meilleure lisibilité.
Tips : [class^="…"] permets de sélectionner tous les éléments dont la classe commence par la même chaîne de texte. Pratique si vous n'avez pas envie de multiplier vos classes sans pour autant vous répéter.
Au niveau des animations, nous avons quelque chose d'un petit peu plus fourni que le balottement de nos deux petits icebergs : les trois flames sont animées séparément, et subissent à la fois une rotation et une mise à l'échèle (scale).
Vous pouvez aussi remarquer qu'il y a une troisième transformation qui se retrouve animée, bien que sa valeur reste tout le temps la même : rotate. Vu qu'elle ne bouge pas, vous auriez peut être envi de la supprimer, ce qui transformera nos losanges en carrés. La raison à ça est très simple : la propriété animée est ici transform, et les trois transformations ne forment qu'une seule "grosse valeur" à cet attribue. retirer la rotation la supprime donc purement et simplement des transformations appliquées.
Contrairement aux icebergs, notre animation n'est pas en "infinite alternate" mais simplement en "infinite". Cela devrait en théorie nous donner une animation qui "saute" car elle n'est pas lue une répétition sur deux en reverse, mais l'animation reste fluide car l'auteur à prit soin de revenir à son point de départ à la fin de l'animation. Cela permet de profiter différemment de la fonction de easing.