html部分
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="test.css">
</head>
<body>
<div class="shell">
<div class="card">
<div class="box">
<img src="imgs/imgs1.png">
</div>
<div class="character">
<img src="imgs/imgs1.png">
</div>
<h4>雷电将军</h4>
</div>
<div class="card">
<div class="box">
<img src="imgs/imgs1.png">
</div>
<div class="character">
<img src="imgs/imgs1.png">
</div>
<h4>雷电将军</h4>
</div>
<div class="card">
<div class="box">
<img src="imgs/imgs3.png">
</div>
<div class="character">
<img src="imgs/imgs3.png">
</div>
<h4>八重神子</h4>
</div>
<div class="card">
<div class="box">
<img src="imgs/imgs1.png">
</div>
<div class="character">
<img src="imgs/imgs1.png">
</div>
<h4>雷电将军</h4>
</div>
<div class="card">
<div class="box">
<img src="imgs/imgs1.png">
</div>
<div class="character">
<img src="imgs/imgs1.png">
</div>
<h4>雷电将军</h4>
</div>
<div class="card">
<div class="box">
<img src="imgs/imgs1.png">
</div>
<div class="character">
<img src="imgs/imgs1.png">
</div>
<h4>雷电将军</h4>
</div>
<div class="card">
<div class="box">
<img src="imgs/imgs1.png">
</div>
<div class="character">
<img src="imgs/imgs1.png">
</div>
<h4>雷电将军</h4>
</div>
<div class="card">
<div class="box">
<img src="imgs/imgs1.png">
</div>
<div class="character">
<img src="imgs/imgs1.png">
</div>
<h4>雷电将军</h4>
</div>
</div>
</body>
</html>
css部分
*{
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
overflow: hidden;
background-image: linear-gradient(
100deg,#e0c3fc 0%,#8ec5fc 100%
);
}
.shell{
width: 900px;
margin: 0 auto;
height: 450px;
display: flex;
}
.card{
flex-basis: 15%;
position: relative;
overflow: hidden;
}
.card:not(nth-child(1)) {
margin-left: 20px;
}
.card:hover{
overflow: initial;
}
.box{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
transition: all .1s cubic-bezier(0.165,0.84,0.44,1);
overflow: hidden;
border-radius: 10px;
background-image: linear-gradient(
180deg,#a18cd1,#fcaae55c,#141414ce
);
}
.box>img{
object-fit: contain;
width: 100%;
height: 100%;
transform: translate(-50%,10%)scale(3);
position: relative;
z-index: -1;
}
.card:hover>.box img{
opacity: 0;
}
.card:hover>.box{
transform:scaleY(1.5);
background-image: initial;
background-color: #e0cbef;
z-index: 2;
cursor: pointer;
}
.card>h4{
position: absolute;
display: block;
width: 120px;
text-align: center;
color: rgba(255, 255, 255, 0.2);
margin-bottom: 20px;
bottom: 0;
left: 50%;
transform: translate(-50%,-35%);
font-size: 20px;
z-index: 100;
transition: .2s;
}
.card:hover h4{
color: #fff;
transform: translate(-50%,250%);
}
.card:hover .character>img{
opacity: 1;
}
.card>.character{
position: absolute;
top: -50px;
left: -200px;
width: 100%;
height: 100%;
z-index: 3;
pointer-events: none;
}
.character>img{
width: 500px;
height: 500px;
object-fit: contain;
opacity: 0;
transition: all .3s;
position: relative;
z-index: -10;
}
如发生盒子发生偏大或偏小,需要自行调整