div+css实现小型自建流动动画效果代码
代码语言:html
所属分类:动画
代码描述:div+css实现小型自建流动动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<style>
* {
transform-style: preserve-3d;
box-sizing: border-box;
}
body {
margin: 0;
padding: 0;
width: 100vw;
height: 100vh;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
perspective: 1000vmin;
background: radial-gradient(circle at 50% 50%, #333, #021320);
cursor: zoom-in;
}
body:active .scene {
transform: scale3d(1.35, 1.35, 1.35);
transition: all 1s ease 0s;
}
.scene {
width: 50vmin;
height: 50vmin;
display: flex;
align-items: center;
justify-content: center;
transition: all 1s ease 0s;
}
.content {
width: 50vmin;
height: 50vmin;
display: flex;
align-items: center;
justify-content: center;
transform: rotateX(-27.25deg) rotateY(-48.75deg) rotateZ(0deg);
transition: all 1s ease 0s;
margin-top: -20vmin;
animation: back-scene 1s linear 0s 1;
}
.content:hover {
animation: spin-scene 20s linear 0s infinite;
}
@keyframes spin-scene {
0% { transform: rotateX(-27.25deg) rotateY(-48.75deg) rotateZ(0deg); }
100% { transform: rotateX(-27.25deg) rotateY(-408.75deg) rotateZ(0deg); }
}
@keyframes back-scene {
0%, 100% { transform: rotateX(-27.25deg) rotateY(-48.75deg) rotateZ(0deg); }
25% { transform: rotateX(-27.25deg) rotateY(-52.75deg) rotateZ(0deg); }
50% { transform: rotateX(-27.25deg) rotateY(-46.75deg) rotateZ(0deg); }
75% { transform: rotateX(-27.25deg) rotateY(-49.75deg) rotateZ(0deg); }
}
body:active .content {
animation-play-state: paused;
}
.content:before {
content: "";
position: absolute;
width: calc(100% + 4vmin);
height: calc(100% + 4vmin);
background: green;
transform: rotateX(90deg) translateZ(-25.5vmin);
border-radius: 1vmin;
box-shadow: 0 0 1vmin 0 #0008 inset;
background:
radial-gradient(#1c8820 12%, transparent 18%) 0px 0,
radial-gradient(#4caf5080 12%, transparent 18%) 3px 4px,
radial-gradient(#ffffff40 12%, transparent 23%) 0 1px,
radial-gradient(#ffffff30 12%, transparent 23%) 2px 3px;
background-color: #298f2c;
background-size: 5px 4px;
}
/*** CUBOID ***/
.cuboid {
--height: 2;
--width: 2;
--depth: 2;
--hue: 200;
--sat: 10%;
height: calc(var(--height) * 1vmin);
width: calc(var(--width) * 1vmin);
position: absolute;
animation: cube1 0.6s linear 0s infinite;
transform: translate3d(0vmin, 0vmin, -5vmin);
}
.cuboid .side {
position: absolute;
top: 50%;
left: 50%;
height: 100%;
width: 100%;
border-radius: 2px;
background: hsl(var(--hue), var(--sat), 10%);
}
.cuboid .side:nth-of-type(1) {
transform: translate3d(-50%, -50%, calc(var(--depth) * 0.5vmin));
filter: brightness(0.75);
}
.cuboid .side:nth-of-type(2) {
transform: translate3d(-50%, -50%, calc(var(--depth) * -0.5vmin)) rotateY(180deg);
}
.cuboid .side:nth-of-type(3) {
width: calc(var(--depth) * 1vmin);
transform: translate(-50%, -50%) rotateY(90deg) translate3d(0, 0, calc(var(--width) * 0.5vmin));
filter: brightness(1.5);
}
.cuboid .side:nth-of-type(4) {
width: calc(var(--depth) * 1vmin);
transform: translate(-50%, -50%) rotateY(-90deg) translate3d(0, 0, calc(var(--width) * 0.5vmin));
filter: brightness(0.6);
}
.cuboid .side:nth-of-type(5) {
height: calc(var(--depth) * 1vmin);
transform: translate(-50%, -50%) rotateX(90deg) translate3d(0, 0, calc(var(--height) * 0.5vmin));
filter: brightness(2);
}
.cuboid .side:nth-of-type(6) {
height: calc(var(--depth) * 1vmin);
transform: translate(-50%, -50%) rotateX(-90deg) translate3d(0, 0, calc(var(--height) * 0.5vmin));
filter: brightness(1.25);
}
.side:before {
content: "";
position: absolute;
width: 100%;
height: 100%;
--units: 0.25vmin;
--brick1: #ef490d;
--brick2: #f13500;
--lines: #5e5e5e;
--brick1: #724f42;
--brick2: #795548;
--lines: #9b8989;
--gp-ln: 50%/ calc(var(--units) * 10) calc(var(--units) * 5);
--gp-cn: 50%/ calc(var(--units) * 5) calc(var(--units) * 5);
background: repeating-conic-gradient(from 90deg at 95% 55%, var(--lines) 0% 25%, #fff0 0% 100%) var(--gp-cn), repeating-linear-gradient(180deg, var(--lines) 0 5%, #fff0 0 50%, var(--lines) 0 55%, var(--brick2) 0 100% ) var(--gp-ln), repeating-linear-gradient(90deg, var(--brick1) 0 47.5%, var(--lines) 0 50%, var(--brick1) 0 97.5%, var(--lines) 0 100% ) var(--gp-ln);
opacity: 0.5;
}
/*** BRICKS ***/
.cuboid.brick-1 {
--width: 36.5;
transform: translate3d(1.75vmin, 24.45vmin, 22vmin);
}
.cuboid.brick-2 {
--depth: 32;
transform: translate3d(21vmin, 24.45vmin, 7vmin);;
}
.cuboid.brick-3 {
--width: 29;
transform: translate3d(7.5vmin, 24.45vmin, -8vmin);
}
.cuboid.brick-4 {
--depth: 26;
transform: translate3d(-6vmin, 24.45vmin, -20vmin);
}
.cuboid.brick-5 {
--width: 30;
transform: translate3d(-20vmin, 24.45vmin, -33vmin);
}
.cuboid.brick-6 {
--width: 8.5;
transform: translate3d(-19vmin, 24.45vmin, -22.5vmin);
}
.cuboid.brick-7 {
--depth: 26;
transform: translate3d(-15.75vmin, 24.45vmin, -9.5vmin);
}
.cuboid.brick-8 {
--width: 27;
transform: translate3d(-2.5vmin, 24.45vmin, 2.6vmin);
}
.cuboid.brick-9 {
--depth: 7;
transform: translate3d(10vmin, 24.45vmin, 6.5vmin);
}
.cuboid.brick-10 {
--width: 27;
transform: translate3d(-2.5vmin, 24.45vmin, 9.5vmin);
}
.cuboid.brick-11 {
--depth: 14.5;
transform: translate3d(-15.75vmin, 24.45vmin, 15.75vmin);
}
.cuboid.brick-12 {
--depth: 28;
transf.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0