Animation CSS qui regarde de plus près et plus loin de gauche à droite, simulant le mouvement d'une façade vitrée sur un plateau tournant
P粉208469050
2023-09-04 21:59:55
<p>J'essaie de créer une animation CSS qui se déplace horizontalement de gauche à droite tout en apparaissant de plus en plus loin, simulant le mouvement du verre sur un plateau tournant vu de face. </p>
<p>Je me rapproche, mais cela ne semble toujours pas correct. Actuellement, on dirait qu'il se déplace le long d'une forme de losange au lieu d'un cercle. </p>
<p>C'est ce que j'ai essayé..</p>
<p>
<pre class="brush:css;toolbar:false;">.roll {
bloc de visualisation;
largeur : 100 px ;
hauteur : 100px ;
fond : rouge ;
marge : 10px auto 10px auto ;
animation : lancer 2s cube-bézier(0,42, 0, 0,58, 1) infini ;
}
@keyframes roulent {
0%,
100 % {
transformer : translateX(0%) échelle(1);
}
20% {
transformer : translateX (50 %) échelle (0,8 );
}
50% {
transformer : translateX (0 %) échelle (0,6 );
}
80% {
transformation : translateX (-50 %) échelle (0,8 );
}
}</pré>
<pre class="brush:html;toolbar:false;"><div class="roll"></div></pre>
</p>
Si vous souhaitez animer un carré sur un cercle horizontal et le faire face au spectateur, vous pouvez utiliser une transformation 3D sur l'élément wrapper et l'inverser sur le carré pour qu'il reste face au spectateur.
Le but est de faire pivoter l'élément sur l'axe Y comme "dans la vraie vie".
Voici un exemple :
Veuillez noter que vous devez utiliser
transform-style:preserve-3d;
(Plus d'informations sur MDN)