On veut maintenant déplacer un div dans un autre avec une transition sur le déplacement. Pour ça, on va dans l'ordre :
- récupérer les coordonnées de départ par rapport à la racine du document
- arracher l'élément et le mettre dans le conteneur d'arrivée
- le basculer en position relative et lui passer les coodonnées de départ
- déclencher le déplacement jusqu'à sa position dans le conteneur d'arrivée
Si vous lisez l'anglais, ce qu'on vient de voir devrait être assez lisible. Le
plus obscur est certainement l'utilisation de void. Ligne 16, On utilise la
commande
void el.offsetLeft;
pour obliger javascript à constater l'état de départ, avant de rentrer les coordonnées d'arrivée. En effet, sinon javascript ne voit pas le changement de valeur des coordonnées, il ne voit que la valeur finale. Et dans ce cas, pas d'animation de la transition, on va directement aux valeurs finales. Voilà le fragment de html et sa prévisualisation :
bouger la flèche
texte dans la cible
un div pour prendre un peu de place
texte dans la flèche
Je dois dire que je trouve assez frustrant de ne pas pouvoir déclencher les transitions sur les éléments impactés. J'ai essayé, je n'ai rien trouvé de concluant.
{{< html_preview >}}