CSS 动画从左到右看起来越来越近和越来越远,模拟转盘盘上玻璃正面的运动
P粉208469050
2023-09-04 21:59:55
<p>我正在尝试创建一个 CSS 动画,该动画从左向右水平移动,同时看起来越来越近和越来越远,模拟从前面看转盘盘上的玻璃的运动。</p>
<p>我已经接近了,但它看起来仍然不正确,目前看起来它沿着菱形而不是圆形移动。</p>
<p>这是我尝试过的..</p>
<p>
<pre class="brush:css;toolbar:false;">.roll {
display: block;
width: 100px;
height: 100px;
background: red;
margin: 10px auto 10px auto;
animation: roll 2s cubic-bezier(0.42, 0, 0.58, 1) infinite;
}
@keyframes roll {
0%,
100% {
transform: translateX(0%) scale(1);
}
20% {
transform: translateX(50%) scale(0.8);
}
50% {
transform: translateX(0%) scale(0.6);
}
80% {
transform: translateX(-50%) scale(0.8);
}
}</pre>
<pre class="brush:html;toolbar:false;"><div class="roll"></div></pre>
</p>
如果您想要在水平面圆上对正方形进行动画处理并使其面向观看者,您可以在包装元素上使用 3D 变换,并在正方形上反转它,使其保持面向观看者.
重点是像“现实生活中”一样在 Y 轴上旋转元素。
这是一个例子:
请注意,您需要使用
transform-style:preserve-3d;
(有关 MDN 的更多信息)