-
Notifications
You must be signed in to change notification settings - Fork 2
css svg animation post #156
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
C'pas mal mais ca mérite de rentrer plus dans le détails sur les animations, avec des bouts de code, ainsi que comment et pourquoi ça marche :)
content/elao/animer-un-svg-en-css.md
Outdated
|
||
## Avant l'animation : définir la viewbox | ||
|
||
Le svg est limité dans l’espace par sa viewbox. Dans Illustrator ou sketch, la viewbox correspond au canvas ou à _l’artboard_ dans lequel nous dessinons. Si un élément sort de la viewbox, par exemple lors de l'animation, il se sera plus visible. Les dimensions de la viewbox sont donc à réfléchir avant de commencer à animer. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- il se sera plus visible.
+ il ne sera plus visible.
content/elao/animer-un-svg-en-css.md
Outdated
|
||
Les transformations css permettent 4 mouvements : la translation, la rotation, la redimension et l’inclinaison oblique. Les transformations qui nous intéressent pour l’animation d’un SVG se situent principalement sur les axes x et y. | ||
|
||
Ici, nous jouons avec scale() pour déformer les paths du logo Elao, puis rotate() pour se déplacer en rotation en définissant le centre de la lettre A comme origine. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rajoute des ` autour des méthodes :
`scale()`
`rotate()`
content/elao/animer-un-svg-en-css.md
Outdated
|
||
Même si l’animation en css offre déjà de larges possibilités d’animation, elle se confronte à certaines limites, auxquelles on peut toutefois pallier grâce à SMIL ou Javascript. | ||
|
||
La plus flagrante est l’absence d’interactivité avec l’animation : difficile à priori de faire réagir un élément svg à des événements uniquement en css. Impossible également de déformer complètement le path d’un élément, ou encore de se déplacer de façon non-linéaire, en suivant une courbe par exemple. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ou encore de se déplacer de façon non-linéaire, en suivant une courbe par exemple.
Faux :p
http://tobiasahlin.com/blog/curved-path-animations-in-css/
content/elao/animer-un-svg-en-css.md
Outdated
|
||
## Le mot de la fin | ||
|
||
L'éventail de mouvements et d'animations possibles en css ouvre énormément de possibilités, lorsque cette animation est décorative et n'impacte pas le fonctionnel. L'animation en css est largement supportée sur les navigateurs récents (source : [CanIUse](https://caniuse.com/#search=svg)). Pour le reste, il existe d'excellentes alternatives grâce à SMIL -- attention toutefois : pas de support sur IE ni sur Edge, ou en Javascript grâce notamment à Snap.svg. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- lorsque cette animation est décorative et n'impacte pas le fonctionnel.
+ du moment que cette animation reste décorative et n'impacte pas le fonctionnel.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Je trouve que ça manque de transition fluide dans tes explications. Ce que je veux dire c'est que tu devrais essayer de "raconter une histoire", de te fixer un objectif au début de l'article et de le développer au fur et à mesure de la lecture.
Par exemple, tu peux montrer le résultat en tout début d'article pour attirer l'attention.
Ensuite, dans tes explications, tu peux ajouter des transitions : tu commences par parler de la viewbox avec un exemple concret, jusque là parfait ; ensuite tu parles des transformations avec CSS, je trouve la transition assez dure. Tu pourrais par exemple dire :
Maintenant qu'on a défini notre viewbox dans le body de la page, nous allons y ajouter notre image pour commencer l'animation...
Et à partir de là tu peux rebondir sur le principe des animations etc.
En gros tu vas construire ton animation étape par étape, c'est ce que j'appelle "raconter une histoire".
En gros tu fais tout le temps référence à ta viewbox et tu la fais évoluer :)
Qu'en penses-tu ?
Je sais que je te fais tout modifier encore mais ça nous entraine à faire de meilleurs articles ;)
content/elao/animer-un-svg-en-css.md
Outdated
|
||
thumbnail: "/images/posts/thumbnails/animation.jpg" | ||
header_img: "/images/posts/headers/animation.jpg" | ||
tags: ["svg","animation","css", "integration"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Aucune idée si ça un impact mais met des espaces pour plus de régularité entre les items.
content/elao/animer-un-svg-en-css.md
Outdated
author_username: "adefrance" | ||
--- | ||
|
||
> Le SVG est un langage XML utilisé pour décrire des graphiques en 2 dimensions. Il permet 3 types d'objet graphiques : des formes vectorielles, des images et du texte. -- W3C |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Chelou le gros espace entre "il et "permet"
content/elao/animer-un-svg-en-css.md
Outdated
|
||
## Avant l'animation : définir la viewbox | ||
|
||
Le svg est limité dans l’espace par sa viewbox. Dans Illustrator ou sketch, la viewbox correspond au canvas ou à _l’artboard_ dans lequel nous dessinons. Si un élément sort de la viewbox, par exemple lors de l'animation, il ne sera plus visible. Les dimensions de la viewbox sont donc à réfléchir avant de commencer à animer. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Majuscule à Sketch
content/elao/animer-un-svg-en-css.md
Outdated
``` | ||
<svg width="500px" height="500px" viewBox="0 0 500 500"> | ||
</svg> | ||
``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Micro explication sur la signification du 0 0 500 500
? :) ainsi que les units qu'il utilise
content/elao/animer-un-svg-en-css.md
Outdated
|
||
### Démo: animer la transformation `scale()` | ||
#### La théorie | ||
La fonction `scale()` permet permet de modifier la taille d'un élément selon une échelle sur 2 dimensions : c'est à dire sur les axes X et/ou Y. Par défaut, tous les élements sont à l'échelle 1. Soit `scale(1)`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2x permet
- c'est à dire
+ c'est-à-dire
content/elao/animer-un-svg-en-css.md
Outdated
// Pas d'étape intermédiaire | ||
to { // État à la fin de l'animation } | ||
} | ||
``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Décore tes snippers de code en css (rajoute css après ```)
Et enlève les crochets pour les commentaires. Pas sur du rendu mais faut tester :p
content/elao/animer-un-svg-en-css.md
Outdated
``` | ||
|
||
``` | ||
@keyframes fill { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Peut-être un nom d'animation plus clair ?
content/elao/animer-un-svg-en-css.md
Outdated
La plus flagrante est l’absence d’interactivité avec l’animation : difficile à priori de faire réagir un élément svg à des événements uniquement en CSS. Impossible également de déformer complètement le `path` d’un élément. | ||
|
||
### Bonus | ||
#### Suivre une trajectoire courbée |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
J'aurais pas vu ça comme un bonus mais plutôt un point comme un autre dans ce qu'on ne peut pas faire en CSS en précisant qu'il existe cependant des tips qui font le taff mais qui sont peut-être un peu compliqués et que le CSS devient peut-être plus vraiment adapté à ce niveau là...
content/elao/animer-un-svg-en-css.md
Outdated
### Bonus | ||
#### Suivre une trajectoire courbée | ||
|
||
Ce trick est tiré du [blog de Tobias Ahlin](http://tobiasahlin.com/blog/curved-path-animations-in-css/). Il montre qu'il est possible de suivre une trajectoire non-linéaire en animant simultanément un élément et son conteneur invisible -- comme si l'on bougeait dans des sens différents deux calques superposés. En donnant la même durée aux deux animations mais en décalant leur `animation-timing-function` pour qu'elles soient désynchronisées, on obtient l'illusion que l'objet se déplace sur une courbe. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- mais en décalant leur `animation-timing-function`
+ mais en décalant leur fonction de progression (`animation-timing-function`)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Juste la remarque pour SMIL sinon 👍
content/elao/animer-un-svg-en-css.md
Outdated
|
||
## Ce qu’on ne peut pas faire en CSS | ||
|
||
Même si l’animation en CSS offre déjà de larges possibilités d’animation, elle se confronte à certaines limites, auxquelles on peut toutefois pallier grâce à SMIL ou Javascript. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lien ou description pour SMIL ?
👍 Moi, j'aime beaucoup ! (Je suis une quiche en CSS/SVG et l'article m'a paru limpide). Je propose quelques modifications mineures, et notamment de changer sa rubrique (création d'une nouvelle rubrique de premier niveau "Inté") : #174 |
[Inte] Svg animation - some minor updates
J'aimerais bien prendre le temps de le relire et mettre en stand by encore un peu, sorry Amélie. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
No description provided.