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