html
<div class="container">
<div class="card-box">
<div class="card">
<img src="./img/1.jpg" alt="">
</div>
<div class="card">
<img src="./img/2.jpg" alt="">
</div>
<div class="card">
<img src="./img/3.jpg" alt="">
</div>
<div class="card">
<img src="./img/4.jpg" alt="">
</div>
</div>
</div>
css
.container{
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
width: 270px;
height: 600px;
/* border: 1px dashed #fff; */
perspective: 1000px;
position: relative;
}
.card-box{
position: absolute;
width: 100%;
height: 100%;
transform-style: preserve-3d;
transform: rotateY(0) translateZ(-700px);
animation: cardRotate 10s cubic-bezier(0.77,0,0.175,1) infinite;
}
.card{
position: absolute;
top: 0;
right: 0;
left: 0;
bottom: 0;
width: 270px;
height: 600px;
display: flex;
justify-content: center;
align-items: center;
-webkit-box-reflect: below 15px
-webkit-linear-gradient(transparent 50%,rgba(255,255,255,0.3));
}
.card img{
width: 100%;
height: 100%;
}
.card:nth-child(1){
transform: rotateY(0) translateZ(700px);
}
.card:nth-child(2){
transform: rotateY(90deg) translateZ(700px);
}
.card:nth-child(3){
transform: rotateY(180deg) translateZ(700px);
}
.card:nth-child(4){
transform: rotateY(270deg) translateZ(700px);
}
@keyframes cardRotate{
0%,20%{
transform: translateZ(-700px) rotateY(0);
}
40%{
transform: translateZ(-700px) rotateY(-90deg);
}
60%{
transform: translateZ(-700px) rotateY(-180deg);
}
80%{
transform: translateZ(-700px) rotateY(-270deg);
}
100%{
transform: translateZ(-700px) rotateY(-360deg);
}
}