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 的更多資訊)