div+css实现三维绝地武士动画效果代码
代码语言:html
所属分类:三维
代码描述:div+css实现三维绝地武士动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
display: grid;
place-items: center;
min-height: 100vh;
background-image: radial-gradient(#bd8b56, #6a4a29);
overflow: hidden;
perspective: 1000px;
}
body .scene, body .scene * {
transform-style: preserve-3d;
}
body .scene {
position: relative;
width: 70vmin;
height: 70vmin;
margin-top: -40%;
transform: rotateX(-20deg) rotateY(70deg) scale3d(1, 1, 1);
animation: rot 20s ease-in-out 0s infinite alternate;
}
@keyframes rot {
to {
transform: rotateX(0deg) rotateY(440deg) scale3d(1, 1, 1);
}
}
body .scene::after {
content: "";
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
z-index: -100;
transform: rotateX(90deg) scale(1);
}
body .scene .cube, body .scene .cube * {
position: absolute;
bottom: 0;
}
body .scene #ground {
z-index: -50;
width: 70vmin;
height: 3vmin;
}
body .scene #ground .container {
position: relative;
width: 100%;
height: 100%;
}
body .scene #ground .container * {
position: absolute;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
}
body .scene #ground .container .left {
width: 70vmin;
height: 3vmin;
background-color: #BC7D3D;
transform-origin: left top;
transform: rotateY(-90deg) translateX(-35vmin);
}
body .scene #ground .container .right {
width: 70vmin;
height: 3vmin;
background-color: #BC7D3D;
transform-origin: left top;
transform: rotateY(90deg) translateX(-35vmin) translateZ(70vmin);
}
body .scene #ground .container .top {
background-color: #c58a4d;
width: 70vmin;
height: 70vmin;
transform-origin: bottom left;
transform: rotateX(90deg) translateY(35vmin) translateZ(3vmin);
}
body .scene #ground .container .bottom {
background-color: #c58a4d;
width: 70vmin;
height: 70vmin;
transform-origin: bottom left;
transform: rotateX(-90deg) translateY(35vmin);
}
body .scene #ground .container .front {
background-color: #9d6933;
width: 70vmin;
height: 3vmin;
transform-origin: bottom left;
transform: translateZ(35vmin);
}
body .scene #ground .container .back {
background-color: #9d6933;
width: 70vmin;
height: 3vmin;
transform-origin: center;
transform: rotateY(180deg) translateZ(35vmin) rotateX(180deg) rotateZ(180deg);
}
body .scene #ground .container .left, body .scene #ground .container .right, body .scene #ground .container .front, body .scene #ground .container .back {
background-image: linear-gradient(180deg, #0000 0% 20%, #AD6B2B 20% 45%, #0000 45% 100%);
}
body .scene #ground .container .bottom {
background-color: #E1B366;
filter: drop-shadow(0 0 3.75rem black);
}
body .scene #ground .container .top {
box-shadow: inset 0 0 15vmin #000a;
background-image: radial-gradient(#0008, #0000 15vmin), repeating-linear-gradient(180deg, #0000 0% 50%, #0001 50% 100%), repeating-linear-gradient(90deg, #0000 0% 50%, #0001 50% 100%);
background-size: 100%, 4em 4em, 4em 4em;
}
body .scene .rocks {
position: absolute;
width: 100%;
height: 100%;
bottom: 0;
transform: translateY(-3vmin);
}
body .scene .rocks #rock-1 {
width: 6vmin;
height: 5vmin;
transform: translate3d(5vmin, 2vmin, 25vmin) rotateX(15deg) rotateY(15deg);
}
body .scene .rocks #rock-1 .container {
position: relative;
width: 100%;
height: 100%;
}
body .scene .rocks #rock-1 .container * {
position: absolute;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
}
body .scene .rocks #rock-1 .container .left {
width: 5vmin;
height: 5vmin;
background-color: #3D3D3D;
transform-origin: left top;
transform: rotateY(-90deg) translateX(-2.5vmin);
}
body .scene .rocks #rock-1 .container .right {
width: 5vmin;
height: 5vmin;
background-color: #3D3D3D;
transform-origin: left top;
transform: rotateY(90deg) translateX(-2.5vmin) translateZ(6vmin);
}
body .scene .rocks #rock-1 .container .top {
background-color: #4a4a4a;
width: 6vmin;
height: 5vmin;
transform-origin: bottom left;
transform: rotateX(90deg) translateY(2.5vmin) translateZ(5vmin);
}
body .scene .rocks #rock-1 .container .bottom {
background-color: #4a4a4a;
width: 6vmin;
height: 5vmin;
transform-origin: bottom left;
transform: rotateX(-90deg) translateY(2.5vmin);
}
body .scene .rocks #rock-1 .container .front {
background-color: #292929;
width: 6vmin;
height: 5vmin;
transform-origin: bottom left;
transform: translateZ(2.5vmin);
}
body .scene .rocks #rock-1 .container .back {
background-color: #292929;
width: 6vmin;
height: 5vmin;
transform-origin: center;
transform: rotateY(180deg) translateZ(2.5vmin) rotateX(180deg) rotateZ(180deg);
}
body .scene .rocks #rock-2 {
width: 8vmin;
height: 4vmin;
transform: translate3d(15vmin, 1.5vmin, -25vmin) rotateX(-15deg) rotateY(20deg);
}
body .scene .rocks #rock-2 .container {
position: relative;
width: 100%;
height: 100%;
}
body .scene .rocks #rock-2 .container * {
position: absolute;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
}
body .scene .rocks #rock-2 .container .left {
width: 8vmin;
height: 4vmin;
background-color: #3D3D3D;
transform-origin: left top;
transform: rotateY(-90deg) translateX(-4vmin);
}
body .scene .rocks #rock-2 .container .right {
width: 8vmin;
height: 4vmin;
background-color: #3D3D3D;
transform-origin: left top;
transform: rotateY(90deg) translateX(-4vmin) translateZ(8vmin);
}
body .scene .rocks #rock-2 .container .top {
background-color: #4a4a4a;
width: 8vmin;
height: 8vmin;
transform-origin: bottom left;
transform: rotateX(90deg) translateY(4vmin) translateZ(4vmin);
}
body .scene .rocks #rock-2 .container .bottom {
background-color: #4a4a4a;
width: 8vmin;
height: 8vmin;
transform-origin: bottom left;
transform: rotateX(-90deg) translateY(4vmin);
}
body .scene .rocks #rock-2 .container .front {
background-color: #292929;
width: 8vmin;
height: 4vmin;
transform-origin: bottom left;
transform: translateZ(4vmin);
}
body .scene .rocks #rock-2 .container .back {
background-color: #292929;
width: 8vmin;
height: 4vmin;
transform-origin: center;
transform: rotateY(180deg) translateZ(4vmin) rotateX(180deg) rotateZ(180deg);
}
body .scene .rocks #rock-3 {
width: 9vmin;
height: 4vmin;
transform: translate3d(15vmin, 2vmin, -25vmin) rotateX(5deg) rotateY(-15deg) rotateZ(3deg);
}
body .scene .rocks #rock-3 .container {
position: relative;
width: 100%;
height: 100%;
}
body .scene .rocks #rock-3 .container * {
position: absolute;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
}
body .scene .rocks #rock-3 .container .left {
width: 8vmin;
height: 4vmin;
background-color: #3D3D3D;
transform-origin: left top;
transform: rotateY(-90deg) translateX(-4vmin);
}
body .scene .rocks #rock-3 .container .right {
width: 8vmin;
height: 4vmin;
background-color: #3D3D3D;
transform-origin: left top;
transform: rotateY(90deg) translateX(-4vmin) translateZ(9vmin);
}
body .scene .rocks #rock-3 .container .top {
background-color: #4a4a4a;
width: 9vmin;
height: 8vmin;
transform-origin: bottom left;
transform: rotateX(90deg) translateY(4vmin) translateZ(4vmin);
}
body .scene .rocks #rock-3 .container .bottom {
background-color: #4a4a4a;
width: 9vmin;
height: 8vmin;
transform-origin: bottom left;
transform: rotateX(-90deg) translateY(4vmin);
}
body .scene .rocks #rock-3 .container .front {
background-color: #292929;
width: 9vmin;
height: 4vmin;
transform-origin: bottom left;
transform: translateZ(4vmin);
}
body .scene .rocks #rock-3 .container .back {
background-color: #292929;
width: 9vmin;
height: 4vmin;
transform-origin: center;
transform: rotateY(180deg) translateZ(4vmin) rotateX(180deg) rotateZ(180deg);
}
body .scene .rocks #rock-4 {
width: 9vmin;
height: 4vmin;
transform: translate3d(45vmin, 1.5vmin, 18vmin) rotateX(15deg) rotateY(45deg);
}
body .scene .rocks #rock-4 .container {
position: relative;
width: 100%;
height: 100%;
}
body .scene .rocks #rock-4 .container * {
position: absolute;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
}
body .scene .rocks #rock-4 .container .left {
width: 8vmin;
height: 4vmin;
background-color: #3D3D3D;
transform-origin: left top;
transform: rotateY(-90deg) translateX(-4vmin);
}
body .scene .rocks #rock-4 .container .right {
width: 8vmin;
height: 4vmin;
background-color: #3D3D3D;
transform-origin: left top;
transform: rotateY(90deg) translateX(-4vmin) translateZ(9vmin);
}
body .scene .rocks #rock-4 .container .top {
background-color: #4a4a4a;
width: 9vmin;
height: 8vmin;
transform-origin: bottom left;
transform: rotateX(90deg) translateY(4vmin) translateZ(4vmin);
}
body .scene .rocks #rock-4 .container .bottom {
background-color: #4a4a4a;
width: 9vmin;
height: 8vmin;
transform-origin: bottom left;
transform: rotateX(-90deg) translateY(4vmin);
}
body .scene .rocks #rock-4 .container .front {
background-color: #292929;
width: 9vmin;
height: 4vmin;
transform-origin: bottom left;
transform: translateZ(4vmin);
}
body .scene .rocks #rock-4 .container .back {
background-color: #292929;
width: 9vmin;
height: 4vmin;
transform-origin: center;
transform: rotateY(180deg) translateZ(4vmin) rotateX(180deg) rotateZ(180deg);
}
body .scene .rocks #rock-5 {
width: 12vmin;
height: 4vmin;
transform: translate3d(47vmin, 1.5vmin, -22vmin) rotateX(-5deg) rotateY(65deg);
}
body .scene .rocks #rock-5 .container {
position: relative;
width: 100%;
height: 100%;
}
body .scene .rocks #rock-5 .container * {
position: absolute;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
}
body .scene .rocks #rock-5 .container .left {
width: 14vmin;
height: 4vmin;
background-color: #3D3D3D;
transform-origin: left top;
transform: rotateY(-90deg) translateX(-7vmin);
}
body .scene .rocks #rock-5 .container .right {
width: 14vmin;
height: 4vmin;
background-color: #3D3D3D;
transform-origin: left top;
transform: rotateY(90deg) translateX(-7vmin) translateZ(12vmin);
}
body .scene .rocks #rock-5 .container .top {
background-color: #4a4a4a;
width: 12vmin;
height: 14vmin;
transform-origin: bottom left;
transform: rotateX(90deg) translateY(7vmin) translateZ(4vmin);
}
body .scene .rocks #rock-5 .container .bottom {
background-color: #4a4a4a;
width: 12vmin;
height: 14vmin;
transform-origin: bottom left;
transform: rotateX(-90deg) translateY(7vmin);
}
body .scene .rocks #rock-5 .container .front {
background-color: #292929;
width: 12vmin;
height: 4vmin;
transform-origin: bottom left;
transform: translateZ(7vmin);
}
body .scene .rocks #rock-5 .container .back {
background-color: #292929;
width: 12vmin;
height: 4vmin;
transform-origin: center;
transform: rotateY(180deg) translateZ(7vmin) rotateX(180deg) rotateZ(180deg);
}
body .scene .jedi {
position: absolute;
width: 100%;
height: 100%;
bottom: 0;
transform: translate3d(30vmin, 0, 0);
}
body .scene .jedi .body, body .scene .jedi .head, body .scene .jedi .light-saber, body .scene .jedi .hair, body .scene .jedi .eyes,
body .sc.........完整代码请登录后点击上方下载按钮下载查看
网友评论0