div+css实现小球沿墙体曲线滑落动画效果代码
代码语言:html
所属分类:动画
代码描述:div+css实现小球沿墙体曲线滑落动画效果代码
代码标签: div css 小球 沿 墙体 曲线 滑落 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
*, *::before, *::after {
padding: 0;
margin: 0 auto;
box-sizing: border-box;
}
body {
background-color: #aaa;
min-height: 100vh;
display: grid;
place-items: center;
perspective: 200vh;
overflow: hidden;
* {
transform-style: preserve-3d;
}
}
.scene {
--duration: 16s;
position: relative;
-webkit-animation: scene calc(var(--duration) * 2) infinite linear;
animation: scene calc(var(--duration) * 2) infinite linear;
}
@-webkit-keyframes scene {
from { transform: rotate(0deg) rotateX(30deg) rotate(360deg); }
to { transform: rotate(360deg) rotateX(30deg) rotate(0deg); }
}
@keyframes scene {
from { transform: rotate(0deg) rotateX(30deg) rotate(360deg); }
to { transform: rotate(360deg) rotateX(30deg) rotate(0deg); }
}
.back {
position: absolute;
inset: -200vh -40vh;
background-color: #f00;
transform: translateZ(-8vh);
background:
linear-gradient(to right, #aaa, transparent, #aaa),
repeating-linear-gradient(#ddd 0 1vh, transparent 0 9.375vh) 0 0 / 100% 100%,
conic-gradient(from 270deg at 1vh 50%, #ddd 0 90deg, transparent 0) 2vh 0 / 18.75vh 18.75vh,
conic-gradient(from 270deg at 1vh 50%, #ddd 0 90deg, transparent 0) 11.375vh 9.375vh / 18.75vh 18.75vh;
-webkit-animation: sliderY var(--duration) infinite linear;
animation: sliderY var(--duration) infinite linear;
}
.slider {
--delay: calc(var(--duration) / -10 * var(--t));
position: absolute;
-webkit-animation: sliderY var(--duration) var(--delay) infinite linear;
animation: sliderY var(--duration) var(--delay) infinite linear;
i {
--border-color: hsl(calc(var(--t) * 36) 75% calc(var(--i) * 5% + 25%));
position: absolute;
inset: -12vh -8vh;
border-radius: 50%;
border: 1vh solid;
transform: translateZ(calc(var(--i) * 0.3vh + 1vh));
&::after {
content: '';
position: absolute;
inset: -1vh;
border: inherit;
border-radius: inherit;
transform: translateZ(-3.5vh);
}
}
&::after {
--border-color: #000;
content: '';
position: absolute;
inset: -12vh -8vh;
border-radius: 50%;
border: 1vh solid;
border-color: transparent transparent #000 #000;
transform: translateZ(-8vh);
filter: blur(1vh);
}
&:nth-child(odd) {
--translateX: 10vh;
i, &::after {
border-color: transparent var(--border-color) var(--border-color) transparent;
}
}
&:nth-child(even) {
--translateX: -10vh;
i, &::after {
border-color: transparent transparent var(--border-color) var(--border-color);
}
}
}
@-webkit-keyframes sliderY {
from { translate: var(--translateX, 0) 93.75vh; }
to { translate: var(--translateX, 0) -93.75vh; }
}
@keyframes sliderY {
from { translate: var(--translateX, 0) 93.75vh; }
.........完整代码请登录后点击上方下载按钮下载查看
网友评论0