div+css实现三维立体金字塔旋转动画效果代码
代码语言:html
所属分类:动画
代码描述:div+css实现三维立体金字塔旋转动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
body {
display: grid;
place-items: center;
min-height: 100vh;
background-image: radial-gradient(#00b3b3, #003434);
overflow: hidden;
perspective: 1000px;
}
body .scene, body .scene * {
transform-style: preserve-3d;
}
body .scene {
position: relative;
width: 50vw;
height: 50vw;
margin-top: -40%;
transform: rotateX(-10deg) rotateY(10deg) scale3d(1, 1, 1);
animation: rot 20s ease-in-out infinite alternate;
}
@keyframes rot {
to {
transform: rotateX(-20deg) rotateY(360deg) scale3d(1, 1, 1);
}
}
body .scene::after {
content: "";
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
background-color: #0005;
box-shadow: inset 0 0 3vw #001a1a;
border-radius: 20%;
transform: rotateX(90deg) translateZ(calc(50vw / -2)) scale(1);
}
body .scene .pyramid, body .scene .pyramid * {
position: absolute;
bottom: 0;
}
body .scene #pyramid-1 {
transform: translate3d(22vw, 0, 5vw);
width: 20vw;
height: 20vw;
}
body .scene #pyramid-1 .container span {
border-bottom: 10px solid #0008;
}
body .scene #pyramid-1 .container::after {
box-shadow: 0 0 10vw #0008;
}
body .scene #pyramid-1 .container {
position: relative;
width: 100%;
height: 100%;
}
body .scene #pyramid-1 .container::after {
content: "";
position: absolute;
width: 100%;
height: 100%;
background-color: teal;
transform: rotateX(90deg) translateZ(-10vw);
}
body .scene #pyramid-1 .container * {
position: absolute;
bottom: 0;
}
body .scene #pyramid-1 .container span:nth-child(1) {
width: 20vw;
height: 20vw;
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
background-color: #006767;
background-image: linear-gradient(90deg, teal, #004d4d);
transform-origin: bottom;
transform: rotateX(90deg) rotateZ(45deg) translateY(-30vw) translateY(20vw) rotateX(-119.5deg);
}
body .scene #pyramid-1 .container span:nth-child(2) {
width: 20vw;
height: 20vw;
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
background-color: #004d4d;
background-image: linear-gradient(90deg, teal, #004d4d);
transform-origin: bottom;
transform: rotateX(90deg) rotateZ(90deg) translateY(-30vw) translateY(20vw) rotateX(-119.5deg);
}
body .scene #pyramid-1 .container span:nth-child(3) {
width: 20vw;
height: 20vw;
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
background-color: #003434;
background-image: linear-gradient(90deg, teal, #004d4d);
transform-origin: bottom;
transform: rotateX(90deg) rotateZ(135deg) translateY(-30vw) translateY(20vw) rotateX(-119.5deg);
}
body .scene #pyramid-1 .container span:nth-child(4) {
width: 20vw;
height: 20vw;
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
background-color: #001a1a;
background-image: linear-gradient(90deg, teal, #004d4d);
transform-origin: bottom;
transform: rotateX(90deg) rotateZ(180deg) translateY(-30vw) translateY(20vw) rotateX(-119.5deg);
}
body .scene #pyramid-1 .container span:nth-child(5) {
width: 20vw;
height: 20vw;
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
background-color: #000101;
background-image: linear-gradient(90deg, teal, #004d4d);
transform-origin: bottom;
transform: rotateX(90deg) rotateZ(225deg) translateY(-30vw) translateY(20vw) rotateX(-119.5deg);
}
body .scene #pyramid-1 .container span:nth-child(6) {
width: 20vw;
height: 20vw;
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
background-color: black;
background-image: linear-gradient(90deg, teal, #004d4d);
transform-origin: bottom;
transform: rotateX(90deg) rotateZ(270deg) translateY(-30vw) translateY(20vw) rotateX(-119.5deg);
}
body .scene #pyramid-1 .container span:nth-child(7) {
width: 20vw;
height: 20vw;
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
background-color: black;
background-image: linear-gradient(90deg, teal, #004d4d);
transform-origin: bottom;
transform: rotateX(90deg) rotateZ(315deg) translateY(-30vw) translateY(20vw) rotateX(-119.5deg);
}
body .scene #pyramid-1 .container span:nth-child(8) {
width: 20vw;
height: 20vw;
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
background-color: black;
background-image: linear-gradient(90deg, teal, #004d4d);
transform-origin: bottom;
transform: rotateX(90deg) rotateZ(360deg) translateY(-30vw) translateY(20vw) rotateX(-119.5deg);
}
body .scene #pyramid-2 {
transform: translate3d(5vw, 0, 15vw);
width: 10vw;
height: 10vw;
}
body .scene #pyramid-2 .container::after {
box-shadow: 0 0 5vw #0008;
}
body .scene #pyramid-2 .container {
position: relative;
width: 100%;
height: 100%;
}
body .scene #pyramid-2 .container::after {
content: "";
position: absolute;
width: 100%;
height: 100%;
background-color: gray;
transform: rotateX(90deg) translateZ(-5vw);
}
body .scene #pyramid-2 .container * {
position: absolute;
bottom: 0;
}
body .scene #pyramid-2 .container span:nth-child(1) {
width: 10vw;
height: 10vw;
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
background-color: #737373;
background-image: linear-gradient(90deg, gray, #676767);
transform-origin: bottom;
transform: rotateX(90deg) rotateZ(90deg) translateY(-15vw) translateY(10vw) rotateX(-119.5deg);
}
body .scene #pyramid-2 .container span:nth-child(2) {
width: 10vw;
height: 10vw;
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
background-color: #676767;
background-image: linear-gradient(90deg, gray, #676767);
transform-origin: bottom;
transform: rotateX(90deg) rotateZ(180deg) translateY(-15vw) translateY(10vw) rotateX(-119.5deg);
}
body .scene #pyramid-2 .container span:nth-child(3) {
width: 10vw;
height: 10vw;
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
background-color: #5a5a5a;
background-image: linear-gradient(90deg, gray, #676767);
transform-origin: bottom;
transform: rotateX(90deg) rotateZ(270deg) translateY(-15vw) translateY(10vw) rotateX(-119.5deg);
}
body .scene #pyramid-2 .container span:nth-child(4) {
width: 10vw;
height: 10vw;
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
background-color: #4d4d4d;
background-image: linear-gradient(90deg, gray, #676767);
transform-origin: bottom;
transform: rotateX(90deg) rotateZ(360deg) translateY(-15vw) translateY(10vw) rotateX(-119.5deg);
}
body .scene #pyramid-3 {
transform: translate3d(5vw, 0, -12vw);
width: 14vw;
height: 14vw;
}
body .scene #pyramid-3 .container span {
border-bottom: 10px solid #0008;
}
body .scene #pyramid-3 .container::after {
box-shadow: 0 0 10vw #0008;
}
body .scene #pyramid-3 .container {
position: relative;
width: 100%;
height: 100%;
}
body .scene #pyramid-3 .container::after {.........完整代码请登录后点击上方下载按钮下载查看
网友评论0