div+css实现三维立方体盒子折叠展开动画效果代码
代码语言:html
所属分类:动画
代码描述:div+css实现三维立方体盒子折叠展开动画效果代码
代码标签: div css 三维 立方体 盒子 折叠 展开 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
:root {
--anim-duration: 5s;
--anim-delay: 0s;
--anim-props: ease-in-out infinite;
--clr-cube-1: deepskyblue;
--clr-cube-2: deeppink;
--clr-lines: #919084;
--clr-bg: #2a2b31;
--grid-v: repeating-linear-gradient(
to right,
transparent 0,
transparent calc(5rem - 1px),
var(--clr-lines) 0,
var(--clr-lines) 5rem
);
--grid-h: repeating-linear-gradient(
to bottom,
transparent 0,
transparent calc(5rem - 1px),
var(--clr-lines) 0,
var(--clr-lines) 5rem
);
--bounce: cubic-bezier(0.4, 0.2, 0.5, 1.6);
}
body {
height: 100vh;
margin: 0;
display: grid;
place-items: center;
perspective: 30rem;
background: var(--clr-bg);
}
body * {
transform-style: preserve-3d;
}
.floor {
display: grid;
width: 45rem;
height: 40rem;
grid-template-columns: repeat(9, 5rem);
grid-template-rows: repeat(8, 5rem);
background: yellow;
background-image: radial-gradient(ellipse at center, transparent 25%, var(--clr-bg) 70%), var(--grid-h), var(--grid-v);
-webkit-animation: var(--anim-duration) var(--anim-props) floor;
animation: var(--anim-duration) var(--anim-props) floor;
}
.cube__wrapper:nth-of-type(1) {
grid-area: 4/4/8/7;
}
.cube__wrapper:nth-of-type(1) .face {
background: var(--clr-cube-1);
}
.cube__wrapper:nth-of-type(2) {
grid-area: 1/5/5/8;
transform: rotateZ(180deg);
--anim-delay: -0.5s;
}
.cube__wrapper:nth-of-type(2) .face {
background: var(--clr-cube-2);
}
.cube__wrapper {
position: relative;
}
.cube__wrapper:after {
position: absolute;
content: "";
width: 5rem;
height: 5rem;
top: 5rem;
left: 5rem;
background: rgba(0, 0, 0, 0.7);
-webkit-animation: var(--anim-duration) var(--anim-props) var(--anim-delay) cube-shadow;
animation: var(--anim-duration) var(--anim-props) var(--anim-delay) cube-shadow;
}
.cube {
display: grid;
grid-template-columns: repeat(3, 5rem);
grid-template-rows: repeat(4, 5rem);
transform-origin: 50% 37.5% 2.5rem;
-webkit-animation: var(--anim-duration) var(--anim-props) var(--anim-delay) cube-anim;
animation: var(--anim-duration) var(--anim-props) var(--anim-delay) cube-anim;
}
.face {
position: relative;
box-shadow: 0 0 0.8333333333rem rgba(255, 255, 255, 0.25) inset;
}
.face:before, .face:after {
content: "";
position: absolute;
inset: 0;
}
.face:before {
background: yellow;
transform: translate3d(0, 0, 1px);
background-image: var(--grid-h), var(--grid-v);
}
.face:after {
-webkit-animation: var(--anim-duration) var(--anim-props) var(--anim-delay) face-shadow;
animation: var(--anim-duration) var(--anim-props) var(--anim-delay) face-shadow;
}
.face.........完整代码请登录后点击上方下载按钮下载查看
网友评论0