div+css实现一个3D道路围栏升起落下动画效果代码
代码语言:html
所属分类:动画
代码描述:div+css实现一个3D道路围栏升起落下动画效果代码
代码标签: div css 3D 道路 围栏 升起 落下 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
*, *::before, *::after {
box-sizing: border-box;
}
body {
align-items: center;
background: linear-gradient(33deg, #323b42, #121317);
display: flex;
justify-content: center;
min-height: 100vh;
}
main {
--unit: 0.2em;
--error-color: red;
--error-color-dark: #721e1e;
}
.fence {
-webkit-animation: fenceAnimation 10s infinite ease-out;
animation: fenceAnimation 10s infinite ease-out;
height: calc(100 * var(--unit));
perspective: calc(250 * var(--unit));
perspective-origin: 50% 50%;
position: relative;
width: calc(100 * var(--unit));
}
.fence__container {
-webkit-animation: fenceAnimation 10s infinite ease-out;
animation: fenceAnimation 10s infinite ease-out;
height: inherit;
left: 0;
position: absolute;
top: 0;
transform: rotate3d(1, -0.3, 0, -10deg);
transform-style: preserve-3d;
width: inherit;
}
.fence__container > * {
left: 0;
position: absolute;
top: 50%;
transform-style: preserve-3d;
}
.base {
left: calc(11.43 * var(--unit));
transform: translate3D(-50%, calc(34.28 * var(--unit)), 0);
}
.base .side--top {
filter: brightness(1);
}
.base .side--bottom {
filter: brightness(0);
}
.base .side--right, .base .side--left {
filter: brightness(0.6);
}
.base .side--front, .base .side--back {
filter: brightness(0.7);
}
.light {
-webkit-animation: lightContainer infinite 5s ease-in-out;
animation: lightContainer infinite 5s ease-in-out;
left: calc(11.43 * var(--unit));
transform: translate3D(-50%, calc(-4.29 * var(--unit)), 0);
}
.light::before {
-webkit-animation: lightShadow 5s ease infinite;
animation: lightShadow 5s ease infinite;
content: "";
height: 0;
position: absolute;
width: 0;
transform: translate(-50%, -50%);
top: 50%;
left: 50%;
box-shadow: 0 0 calc(9.43 * var(--unit)) calc(5.71 * var(--unit)) red, 0 0 calc(1 * var(--unit)) calc(2 * var(--unit)) red;
transform-style: unset;
}
.light-rotation {
all: inherit;
-webkit-animation: lightrotation infinite 5s linear;
animation: lightrotation infinite 5s linear;
left: 0;
position: relative;
}
.light .side {
background: red;
filter: blur(1px);
}
.pole {
left: calc(11.43 * var(--unit));
transform: translate3D(-50%, 0, 0);
}
.pole .side {
background: var(--error-color-dark);
border: calc(1 * var(--unit)) solid #fff;
}
.pole .side--top {
border: none;
background: radial-gradient(#d72323, #ff8a8a 80%);
filter: brightness(1);
}
.pole .side--bottom {
filter: brightness(0);
}
.pole .side--right, .pole .side--left {
filter: brightness(0.7);
}
.pole .side--front, .pole .side--back {
filter: brightness(0.9);
}
.bar {
-webkit-animation: fallingBar 10s infinite ease-out;
animation: fallingBar 10s infinite ease-out;
transform: translate3D(0, calc(4.29 * var(--unit)), 0) rotateZ(-20deg);
transform-origin: calc(11.43 * var(--unit)) 0;
}
.bar .side--front, .bar .side--back {
background-image: repeating-linear-gradient(45deg, transparent, transparent calc(5.71 * var(--unit)), #ffffff calc(5.71 * var(--unit)), #ffffff calc(11.42 * var(--unit)));
background-color: var(--error-color);
}
.bar .side--left {
background-color: var(--error-color);
}
.bar .side--top {
filter: brightness(0.95);
}
.bar .side--bottom {
filter: brightness(0.7);
}
.cube {
.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0