css实现一个三维火车进站动画效果代码
代码语言:html
所属分类:动画
代码描述:css实现一个三维火车进站动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<style>
@charset "UTF-8";
* {
border: 0;
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-size: 30px;
height: 100vh;
margin: 0;
}
.container {
background: #6cf;
display: flex;
margin: auto;
overflow: hidden;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 100%;
height: 100%;
perspective: 800px;
transform-style: preserve-3d;
}
.surface {
display: block;
width: 12em;
height: 12em;
margin: auto;
transform-style: preserve-3d;
transform: rotateX(45deg) rotateZ(45deg);
will-change: transform;
}
.block, .plate {
display: none;
transform-style: preserve-3d;
position: absolute;
bottom: 0;
}
.block-inner > div, .plate {
width: 1em;
height: 1em;
}
.block-inner > div {
display: flex;
flex-wrap: wrap;
align-content: flex-start;
position: absolute;
}
.block-inner {
position: relative;
width: 1em;
transform-style: preserve-3d;
transform: rotateX(-90deg) translateZ(1em);
}
.back {
transform: translateZ(-1em) rotateY(180deg);
}
.left {
transform-origin: center left;
transform: rotateY(270deg) translateX(-1em);
}
.right {
transform-origin: top right;
}
.top, .bottom {
transform-origin: top center;
}
.b1 {
display: inherit;
transform: translate3d(4em, -11.5em, 1.5em);
}
.b1 .block-inner div {
background-color: #888;
}
.b1 .block-inner div.top, .b1 .block-inner div.bottom {
width: 0.5em;
height: 2em;
}
.b1 .block-inner div.top {
transform: rotateX(-90deg) translateY(-1em);
}
.b1 .block-inner div.bottom {
transform: rotateX(-90deg) translateY(-1em) translateZ(0.75em);
}
.b1 .block-inner div.front:before, .b1 .block-inner div.back:before, .b1 .block-inner div.left:before, .b1 .block-inner div.right:before {
background-color: #000;
content: "";
width: 100%;
height: 100%;
}
.b1 .block-inner div.front, .b1 .block-inner div.back {
width: 0.5em;
height: 0.75em;
}
.b1 .block-inner div.front:before, .b1 .block-inner div.back:before {
opacity: 0.2;
}
.b1 .block-inner div.front {
transform: translateZ(1em);
}
.b1 .block-inner div.left, .b1 .block-inner div.right {
width: 2em;
height: 0.75em;
}
.b1 .block-inner div.left:before, .b1 .block-inner div.right:before {
opacity: 0.4;
}
.b1 .block-inner div.right {
transform: rotateY(-270deg) translate3d(1em, 0, -1.5em);
}
.b2 {
display: inherit;
transform: translate3d(4em, -11.5em, 2em);
}
.b2 .block-inner div {
background-color: #888;
}
.b2 .block-inner div.top, .b2 .block-inner div.bottom {
width: 3em;
height: 2em;
}
.b2 .block-inner div.top {
transform: rotateX(-90deg) translateY(-1em);
}
.b2 .block-inner div.bottom {
transform: rotateX(-90deg) translateY(-1em) translateZ(0.5em);
}
.b2 .block-inner div.front:before, .b2 .block-inner div.back:before, .b2 .block-inner div.left:before, .b2 .block-inner div.right:before {
background-color: #000;
content: "";
width: 100%;
height: 100%;
}
.b2 .block-inner div.front, .b2 .block-inner div.back {
width: 3em;
height: 0.5em;
}
.b2 .block-inner div.front:before, .b2 .block-inner div.back:before {
opacity: 0.2;
}
.b2 .block-inner div.front {
transform: translateZ(1em);
}
.b2 .block-inner div.left, .b2 .block-inner div.right {
width: 2em;
height: 0.5em;
}
.b2 .block-inner div.left:before, .b2 .block-inner div.right:before {
opacity: 0.4;
}
.b2 .block-inner div.right {
transform: rotateY(-270deg) translate3d(1em, 0, 1em);
}
.b3 {
display: inherit;
transform: translate3d(4em, -11.5em, 2.5em);
}
.b3 .block-inner div {
background-color: #888;
}
.b3 .block-inner div.top, .b3 .block-inner div.bottom {
width: 3em;
height: 0.5em;
}
.b3 .block-inner div.top {
transform: rotateX(-90deg) translateY(0.5em);
}
.b3 .block-inner div.bottom {
transform: rotateX(-90deg) translateY(0.5em) translateZ(0.5em);
}
.b3 .block-inner div.front:before, .b3 .block-inner div.back:before, .b3 .block-inner div.left:before, .b3 .block-inner div.right:before {
background-color: #000;
content: "";
width: 100%;
height: 100%;
}
.b3 .block-inner div.front, .b3 .block-inner div.back {
width: 3em;
height: 0.5em;
}
.b3 .block-inner div.front:before, .b3 .block-inner div.back:before {
opacity: 0.2;
}
.b3 .block-inner div.front {
transform: translateZ(-0.5em);
}
.b3 .block-inner div.left, .b3 .block-inner div.right {
width: 0.5em;
height: 0.5em;
}
.b3 .block-inner div.left:before, .b3 .block-inner div.right:before {
opacity: 0.4;
}
.b3 .block-inner div.right {
transform: rotateY(-270deg) translate3d(1em, 0, 2.5em);
}
.b4 {
display: inherit;
transform: translate3d(4em, -10em, 2.5em);
}
.b4 .block-inner div {
background-color: #888;
}
.b4 .block-inner div.top, .b4 .block-inner div.bottom {
width: 3em;
height: 0.5em;
}
.b4 .block-inner div.top {
transform: rotateX(-90deg) translateY(0.5em);
}
.b4 .block-inner div.bottom {
transform: rotateX(-90deg) translateY(0.5em) translateZ(0.5em);
}
.b4 .block-inner div.front:before, .b4 .block-inner div.back:before, .b4 .block-inner div.left:before, .b4 .block-inner div.right:before {
background-color: #000;
content: "";
width: 100%;
height: 100%;
}
.b4 .block-inner div.front, .b4 .block-inner div.back {
width: 3em;
height: 0.5em;
}
.b4 .block-inner div.front:before, .b4 .block-inner div.back:before {
opacity: 0.2;
}
.b4 .block-inner div.front {
transform: translateZ(-0.5em);
}
.b4 .block-inner div.left, .b4 .block-inner div.right {
width: 0.5em;
height: 0.5em;
}
.b4 .block-inner div.left:before, .b4 .block-inner div.right:before {
opacity: 0.4;
}
.b4 .block-inner div.right {
transform: rotateY(-270deg) translate3d(1em, 0, 2.5em);
}
.b5 {
display: inherit;
transform: translate3d(9.5em, -7em, 2em);
}
.b5 .block-inner div {
background-color: #888;
}
.b5 .block-inner div.top, .b5 .block-inner div.bottom {
width: 2em;
height: 4em;
}
.b5 .block-inner div.top {
transform: rotateX(-90deg) translateY(-3em);
}
.b5 .block-inner div.bottom {
transform: rotateX(-90deg) translateY(-3em) translateZ(0.5em);
}
.b5 .block-inner div.front:before, .b5 .block-inner div.back:before, .b5 .block-inner div.left:before, .b5 .block-inner div.right:before {
background-color: #000;
content: "";
width: 100%;
height: 100%;
}
.b5 .block-inner div.front, .b5 .block-inner div.back {
width: 2em;
height: 0.5em;
}
.b5 .block-inner div.front:before, .b5 .block-inner div.back:before {
opacity: 0.2;
}
.b5 .block-inner div.front {
transform: translateZ(3em);
}
.b5 .block-inner div.left, .b5 .block-inner div.right {
width: 4em;
height: 0.5em;
}
.b5 .block-inner div.left:before, .b5 .block-inner div.right:before {
opacity: 0.4;
}
.b5 .block-inner div.right {
transform: rotateY(-270deg) translate3d(1em, 0, -2em);
}
.b6 {
display: inherit;
transform: translate3d(11em, -7em, 2.5em);
}
.b6 .block-inner div {
background-color: #888;
}
.b6 .block-inner div.top, .b6 .block-inner div.bottom {
width: 0.5em;
height: 4em;
}
.b6 .block-inner div.top {
transform: rotateX(-90deg) translateY(-3em);
}
.b6 .block-inner div.bottom {
transform: rotateX(-90deg) translateY(-3em) translateZ(0.5em);
}
.b6 .block-inner div.front:before, .b6 .block-inner div.back:before, .b6 .block-inner div.left:before, .b6 .block-inner div.right:before {
background-color: #000;
content: "";
width: 100%;
height: 100%;
}
.b6 .block-inner div.front, .b6 .block-inner div.back {
width: 0.5em;
height: 0.5em;
}
.b6 .block-inner div.front:before, .b6 .block-inner div.back:before {
opacity: 0.2;
}
.b6 .block-inner div.front {
transform: translateZ(3em);
}
.b6 .block-inner div.left, .b6 .block-inner div.right {
width: 4em;
height: 0.5em;
}
.b6 .block-inner div.left:before, .b6 .block-inner div.right:before {
opacity: 0.4;
}
.b6 .block-inner div.right {
transform: rotateY(-270deg) translate3d(1em, 0, -3.5em);
}
.b7 {
display: inherit;
transform: translate3d(9.5em, -7em, 2.5em);
}
.b7 .block-inner div {
background-color: #888;
}
.b7 .block-inner div.top, .b7 .block-inner div.bottom {
width: 0.5em;
height: 4em;
}
.b7 .block-inner div.top {
transform: rotateX(-90deg) translateY(-3em);
}
.b7 .block-inner div.bottom {
transform: rotateX(-90deg) translateY(-3em) translateZ(0.5em);
}
.b7 .block-inner div.front:before, .b7 .block-inner div.back:before, .b7 .block-inner div.left:before, .b7 .block-inner div.right:before {
background-color: #000;
content: "";
width: 100%;
height: 100%;
}
.b7 .block-inner div.front, .b7 .block-inner div.back {
width: 0.5em;
height: 0.5em;
}
.b7 .block-inner div.front:before, .b7 .block-inner div.back:before {
opacity: 0.2;
}
.b7 .block-inner div.front {
transform: translateZ(3em);
}
.b7 .block-inner div.left, .b7 .block-inner div.right {
width: 4em;
height: 0.5em;
}
.b7 .block-inner div.left:before, .b7 .block-inner div.right:before {
opacity: 0.4;
}
.b7 .block-inner div.right {
transform: rotateY(-270deg) translate3d(1em, 0, -3.5em);
}
.b8 {
display: inherit;
transform: translate3d(9.5em, -3.5em, 1.5em);
}
.b8 .block-inner div {
background-color: #888;
}
.b8 .block-inner div.top, .b8 .block-inner div.bottom {
width: 2em;
height: 0.5em;
}
.b8 .block-inner div.top {
transform: rotateX(-90deg) translateY(0.5em);
}
.b8 .block-inner div.bottom {
transform: rotateX(-90deg) translateY(0.5em) translateZ(0.75em);
}
.b8 .block-inner div.front:before, .b8 .block-inner div.back:before, .b8 .block-inner div.left:before, .b8 .block-inner div.right:before {
background-color: #000;
content: "";
width: 100%;
height: 100%;
}
.b8 .block-inner div.front, .b8 .block-inner div.back {
width: 2em;
height: 0.75em;
}
.b8 .block-inner div.front:before, .b8 .block-inner div.back:before {
opacity: 0.2;
}
.b8 .block-inner div.front {
transform: translateZ(-0.5em);
}
.b8 .block-inner div.left, .b8 .block-inner div.right {
width: 0.5em;
height: 0.75em;
}
.b8 .block-inner div.left:before, .b8 .block-inner div.right:before {
opacity: 0.4;
}
.b8 .block-inner div.right {
transform: rotateY(-270deg) translate3d(1em, 0, 1.5em);
}
.b9 {
display: inherit;
transform: translate3d(9.5em, -3em, 1.5em);
}
.b9 .block-inner div {
background-color: #474;
}
.b9 .block-inner div.top, .b9 .block-inner div.bottom {
width: 2em;
height: 0.5em;
}
.b9 .block-inner div.top {
transform: rotateX(-90deg) translateY(0.5em);
}
.b9 .block-inner div.bottom {
transform: rotateX(-90deg) translateY(0.5em) translateZ(0.5em);
}
.b9 .block-inner div.front:before, .b9 .block-inner div.back:before, .b9 .block-inner div.left:before, .b9 .block-inner div.right:before {
background-color: #000;
content: "";
width: 100%;
height: 100%;
}
.b9 .block-inner div.front, .b9 .block-inner div.back {
width: 2em;
height: 0.5em;
}
.b9 .block-inner div.front:before, .b9 .block-inner div.back:before {
opacity: 0.2;
}
.b9 .block-inner div.front {
transform: translateZ(-0.5em);
}
.b9 .block-inner div.left, .b9 .block-inner div.right {
width: 0.5em;
height: 0.5em;
}
.b9 .block-inner div.left:before, .b9 .block-inner div.right:before {
opacity: 0.4;
}
.b9 .block-inner div.right {
transform: rotateY(-270deg) translate3d(1em, 0, 1.5em);
}
.b10 {
display: inherit;
transform: translate3d(8em, -12em, 3em);
}
.b10 .block-inner div {
background-color: #474;
}
.b10 .block-inner div.top, .b10 .block-inner div.bottom {
width: 4em;
height: 4em;
}
.b10 .block-inner div.top {
transform: rotateX(-90deg) translateY(-3em);
}
.b10 .block-inner div.bottom {
transform: rotateX(-90deg) translateY(-3em) translateZ(0.5em);
}
.b10 .block-inner div.front:before, .b10 .block-inner div.back:before, .b10 .block-inner div.left:before, .b10 .block-inner div.right:before {
background-color: #000;
content: "";
width: 100%;
height: 100%;
}
.b10 .block-inner div.front, .b10 .block-inner div.back {
width: 4em;
height: 0.5em;
}
.b10 .block-inner div.front:before, .b10 .block-inner div.back:before {
opacity: 0.2;
}
.b10 .block-inner div.front {
transform: translateZ(3em);
}
.b10 .block-inner div.left, .b10 .block-inner div.right {
width: 4em;
height: 0.5em;
}
.b10 .block-inner div.left:before, .b10 .block-inner div.right:before {
opacity: 0.4;
}
.b10 .block-inner div.right {
transform: rotateY(-270deg) translate3d(1em, 0, 0em);
}
.b11 {
display: inherit;
transform: translate3d(7.5em, -12em, 2.5em);
}
.b11 .block-inner div {
background-color: #474;
}
.b11 .block-inner div.top, .b11 .block-inner div.bottom {
width: 4.5em;
height: 4.5em;
}
.b11 .block-inner div.top {
transform: rotateX(-90deg) translateY(-3.5em);
}
.b11 .block-inner div.bottom {
transform: rotateX(-90deg) translateY(-3.5em) translateZ(0.5em);
}
.b11 .block-inner div.front:before, .b11 .block-inner div.back:before, .b11 .block-inner div.left:before, .b11 .block-inner div.right:before {
background-color: #000;
content: "";
width: 100%;
height: 100%;
}
.b11 .block-inner div.front, .b11 .block-inner div.back {
width: 4.5em;
height: 0.5em;
}
.b11 .block-inner div.front:before, .b11 .block-inner div.back:before {
opacity: 0.2;
}
.b11 .block-inner div.front {
transform: translateZ(3.5em);
}
.b11 .block-inner div.left, .b11 .block-inner div.ri.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0