banner效果![在这里插入图片描述](https://img-blog.csdnimg.cn/5144bf31ea4b465e957fae1be713478f.gif)
页面元素
<body>
<div class="container">
<div data-color="radial-gradient(#999,#990100)" class="item left">
<img src="./image/head/16pic_435365_s.png" alt="">
</div>
<div data-color="radial-gradient(#999,#163d13)" class="item middle z-index2">
<img src="./image/head/16pic_435650_s.png" alt="">
</div>
<div data-color="radial-gradient(#999,#1a1822)" class="item rigth">
<img src="./image/head/16pic_436352_b.png" alt="">
</div>
</div>
</body>
样式
<style>
body{
background: radial-gradient(#999,#163d13);
}
.container{
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
position: relative;
}
img{
width: 100%;
}
.item{
position: absolute;
width: 350px;
height: 380px;
overflow: hidden;
border-radius: 20px;
transition: 0.5s;
transform-origin: bottom center;
}
.left{
transform:scale(0.6) translateX(-140%);
}
.middle{
transform:scale(1) translateX(0%);
}
.rigth{
transform:scale(0.6) translateX(140%);
}
.z-index1{
z-index: 1 !important;
}
.z-index2{
z-index: 2!important;
}
</style>
js
<script>
let itemList = document.getElementsByClassName("item");
for(let i = 0; i < itemList.length; i++){
itemList[i].onclick = function(){
this.classList.remove("left","middle","rigth","z-index2","z-index1")
this.classList.add("middle","z-index2")
document.body.style.background = this.dataset.color;
let leftNode = this.previousElementSibling ?? itemList[itemList.length - 1];
leftNode.classList.remove("left","middle","rigth","z-index2","z-index1")
leftNode.classList.add("left","z-index1")
let rightNode = this.nextElementSibling ?? itemList[0];
rightNode.classList.remove("left","middle","rigth","z-index2","z-index1")
rightNode.classList.add("rigth","z-index1")
}
}
</script>