Transformations CSS 3D avec perspective à la fin : comprendre la raison
Les transformations CSS 3D permettent des animations complexes et des effets de perspective sur les éléments Web. Cependant, une curieuse observation est apparue lorsque la propriété perspective est placée à la fin de la liste de transformation.
Problème :
Dans l'extrait fourni, deux cases ont des survols différents comportements. La propriété perspective est placée à la fin de la liste de transformation pour la première case, alors qu'elle précède la transformation pour la deuxième case :
box:nth-child(1):hover { transform: perspective(1000px) translate3d(0, 0, -100px); } box:nth-child(2):hover { transform: translate3d(0, 0, 100px) perspective(1000px); }
Cela entraîne des résultats visuels différents même si les deux transformations semblent identiques.
Réponse :
La clé pour comprendre ce comportement réside dans l'ordre dans lequel la matrice de transformation est calculée. Selon la spécification CSS Transform, la matrice est calculée comme suit :
Explication :
Dans l'étape 3, il est crucial d'appliquer les transformations de de gauche à droite. Cela signifie que lorsque la perspective est placée en fin de liste, la traduction est effectuée avant que la perspective ne soit appliquée.
De ce fait, la traduction se produit en l'absence d'effet de perspective, c'est pourquoi le résultat le mouvement semble plat et sans profondeur.
Implications :
En suivant En suivant ces directives, vous pouvez obtenir les effets de transformation 3D souhaités avec l'application correcte de la propriété perspective.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!