我试图创建一个CSS动画,从左到右水平移动,同时似乎越来越近,越来越远,模拟从前面观看转盘上的玻璃运动。
我已经接近了,但它仍然看起来不正确,看起来像是沿着钻石形状而不是圆形行进。
这就是我所尝试的。
.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);
}
}
<div class="roll"></div>
2条答案
按热度按时间wpcxdonn1#
如果你想在一个水平面圆上制作正方形的动画,并保持它面向观察者,你可以在一个 Package 元素上使用3d变换,并在正方形上反转它,使它保持面向观察者。
关键是在Y轴上旋转元素,就像“在真实的生活中”一样。
下面是一个例子:
请注意,您需要使用
transform-style: preserve-3d;
(more info on MDN)wh6knrhe2#
您可以通过使用z轴来实现此3d效果。看一看:https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/translateZ