28172 sujets

CSS et mise en forme, CSS3

Bonjour,

Sur le site O2switch certaines animations sont gérées directement dans le fichier SVG en CSS. Je trouve la solution plutôt élégante pour ce genre d'animation en boucle :
https://www.o2switch.fr/
https://www.o2switch.fr/wp-content/uploads/2022/06/telechargement.svg

Question : vous en pensez quoi en terme de performance ? J'imagine que ce n'est pas le plus optimal mais ça me semble raisonnable pour des petits sites vitrines si on abuse pas (animation logo, icones et visuels vectoriels).

L'idée serait éventuellement de vendre ce genre d'image "clé en main" dons je veux vérifier que ce soit pas trop aberrant quand on optimise au mieux son fichier (d'où l'intérêt que ça tienne juste sur un seul fichier pour la livraison, c'est propre et facile à implémenter pour le client).

Merci !
Modifié par Baekho (24 Aug 2022 - 16:37)
Modérateur
Bonjour,

En terme d'efficacité, y a pas trop de raison que ce soit mauvais. Déjà, quand tout est dans un seul fichier, ça réduit au mieux les problèmes de lenteur dus au réseau. Par ailleurs, le css dans les svg est désormais assez bien optimisé, et ça continue de progresser (y a toujours quand même quelques surprises quand on fait des animations css dans du svg). Le rendu ne pourra donc que s'améliorer avec le temps.

En terme d'intégration, si le fichier svg est ajouté dans une balise <img>, pas de problème. Si par contre il est destiné à être éventuellement ajouté directement dans le html, il serait bon de préfixer tous les noms spécifiques se trouvant dans le svg (id, classe, nom des animations, etc.) par une chaine de caractères bien à toi. Ça évite lors de l'intégration des vérifications parfois fastidieuses, et en cas de problème, c'est facile de changer ce préfixe.

Par exemple, je vois dans ton exemple un id="mask". C'est probable qu'il y en aura certains qui auront par ailleurs des id="mask" dans leur code, avec des effets de bord possibles si le code svg est directement ajouté dans le html (on n'a pas ce problème quand le svg est ajouté via l'attribut src d'une image).

Amicalement,
Meilleure solution
Merci pour cette réponse très complète ^ ^ C'est vraiment une solution toute simple qui me manquait pour compléter les animations qui se déclenchent au scroll (perso j'utilise actuellement la bibliothèque AOS que je trouve super facile à intégrer https://michalsnik.github.io/aos/)

J'ai eu l'occasion d'utiliser aussi la bibliothèque GSAP pour gérer l'ensemble des animations d'un site (avec l'intérêt de mettre en pause les animations en boucle quand on n'est pas dessus), ça se prend franchement bien en main quand on connait la CSS, mais reste un peu complexe en terme de maintenance pour des petits sites (je ne sais pas trop ce que donnera le rendu dans quelques années... avec l'animation CSS intégrée direct dans le SVG je suis davantage dans mon élément et plutôt confiante sur la pérennité de la solution).

Je résiste pas au passage de vous mettre 2 tips d'animation au scroll en (casi) pure CSS qui sont aussi remarquables pour leur simplicité :
https://css-tricks.com/books/greatest-css-tricks/scroll-animation/
https://css-tricks.com/books/greatest-css-tricks/scroll-indicator/

Bref encore merci d'avoir pris le temps de répondre ! Un plaisir de voir que la communauté d'Alsa est toujours aussi réactive Smiley cligne