效果预览:
实现思路和立体按钮的实现思路是一致的立体按钮 基于动画transform
实现代码:
HTML
<main>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
</main>
css
body {
width: 100vw;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
background: #2C3A47 ;
}
/*设置父盒子最初的样式*/
main {
width: 200px;
height: 200px;
border: 1px solid #fff;
transform-style: preserve-3d;
/*改变元素旋转基点*/
transform-origin: center center 100px;
transform: perspective(900px) rotateX(-45deg);
transition: all 1s;
}
body:hover main {
transform: perspective(900px) rotateX(90deg) rotateY(360deg);
}
main div {
width: 200px;
height: 200px;
font-size: 3em;
color: #fff;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
transform-origin: center center 100px;
/*让元素透视*/
opacity: .8;
}
main div:nth-child(1) {
background-color: #6c5ce7;
transform: rotateY(90deg);
}
main div:nth-child(2) {
background-color: #ffeaa7;
transform: rotateY(180deg);
}
main div:nth-child(3) {
background-color: #fd79a8;
transform: rotateY(270deg);
}
main div:nth-child(4) {
background-color: #e84393;
transform: rotateY(360deg);
}
main div:nth-child(5) {
/*改变元素旋转基点*/
transform-origin: top;
background-color: #e17055;
transform: rotateX(90deg);
}
main div:nth-child(6) {
/*改变元素旋转基点*/
transform-origin: bottom;
background-color: #dfe6e9;
transform: rotateX(-90deg);
}