CSS3实现轮播转动效果是一种非常简单而又实用的效果。可以通过以下代码来实现:
.carousel {
display: flex;
width: 100%;
overflow: hidden;
}
.carousel-item {
flex: 1 0 100%;
display: flex;
align-items: center;
justify-content: center;
transform-style: preserve-3d;
transition: all 1s ease-out;
}
.carousel-item.active {
transform: rotateY(0deg);
z-index: 1;
}
.carousel-item.prev {
transform: rotateY(90deg);
z-index: 0;
}
.carousel-item.next {
transform: rotateY(-90deg);
z-index: 0;
} 以上代码中,我们首先设置了一个容器.carousel,这个容器用来包裹所有的幻灯片项,它设置了display: flex,让幻灯片项们可以一行横向排列,并且超出容器的部分隐藏掉。另外,carousel-item类设置为 display: flex,使其内部元素可以水平和垂直居中。transform-style: preserve-3d 防止以下旋转消失,transition: all 1s ease-out 设置所有属性都有1秒的转换效果。
接下来是.active、.prev和.next这三个类名,它们分别表示当前正在展示的幻灯片,前一个幻灯片和下一个幻灯片。.active的z-index值最高,因此它在最前面;而.prev和.next的z-index值低于.active,所以它们被放到了最底部。这三个类名用于控制幻灯片的位置和旋转角度,实现轮播转动的效果。