div+css实现三维六边形管道穿越动画效果代码
代码语言:html
所属分类:三维
代码描述:div+css实现三维六边形管道穿越动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> @import url("https://fonts.googleapis.com/css?family=Raleway:400,400i,700"); *, *::before, *::after { padding: 0; margin: 0 auto; box-sizing: border-box; } :root { --perspective: 600px; } body { font-family: Raleway, sans-serif; background-color: #222; color: #fff; min-height: 100vh; display: grid; place-items: center; overflow: hidden; perspective: var(--perspective); } body *:not(:empty) { transform-style: preserve-3d; } #cb { display: none; } #cb:checked ~ .scene { --animation: flyThrough 24s -18s; } #cb:checked ~ .view { --dir: 1; } .view { position: fixed; bottom: 0; background-color: #0005; padding: 0.75em; transform: translateZ(0px); } .view label { display: flex; gap: 0.25em; align-items: center; } .view .sw { border: 1px solid; display: inline-block; display: grid; place-items: center; border-radius: 1em; padding: 0.1em 0.4em; } .view .sw::after { content: ""; display: inline-block; width: 0.4em; height: 0.4em; border-radius: 50%; background-color: #fff; transform: translateX(calc(var(--dir, -1) * 0.2em)); transition: transform 0.3s; } .view .ov { opacity: calc(0.7 + var(--dir, -1) * -0.3); } .view .ft { opacity: calc(0.7 + var(--dir, -1) * 0.3); } .scene { position: relative; pointer-events: none; -webkit-animation: var(--animation, scene 48s) infinite linear; animation: var(--animation, scene 48s) infinite linear; } @-webkit-keyframes scene { from { transform: rotateX(-45deg) rotateY(0deg); } to { transform: rotateX(-45deg) rotateY(360deg); } } @keyframes scene { from { transform: rotateX(-45deg) rotateY(0deg); } to { transform: rotateX(-45deg) rotateY(360deg); } } .scene::before { content: ""; position: absolute; inset: -75em; background-image: radial-gradient(closest-side, transparent, #222), repeating-linear-gradient(#fff1 0 1px, transparent 0 1em), repeating-linear-gradient(90deg, #fff1 0 1px, transparent 0 1em); transform: rotateX(90deg) translateZ(-7em); } .shadow { position: absolute; inset: -16em -28em; transform: rotateX(90deg) translateZ(-7.1em); filter: blur(1em); } .shadow::before, .shadow::after { content: ""; position: absolute; left: var(--left, 2em); top: 2em; width: 28em; height: 28em; background-image: radial-gradient(closest-side, #222 10em, transparent 0), conic-gradient(from var(--from, 90deg), transparent, #000); border-radius: 50%; } .shadow::after { --left: 26em; --from: 270deg; } .ring { position: absolute; } .ring:nth-child(2) { --hue: 0; --delay: 0s; transform: translate3d(0em, 5em, 0em) rotateY(0deg) rotateX(0deg); } .ring:nth-child(3) { --hue: 5; --delay: -0.3333333333s; transform: translate3d(-0.1519224699em, 4.9809734905em, -1.7364817767em) rotateY(10deg) rotateX(-1.3073361412deg); } .ring:nth-child(4) { --hue: 10; --delay: -0.6666666667s; transform: translate3d(-0.6030737921em, 4.9240387651em, -3.4202014333em) rotateY(20deg) rotateX(-2.604722665deg); } .ring:nth-child(5) { --hue: 15; --delay: -1s; transform: translate3d(-1.3397459622em, 4.8296291314em, -5em) rotateY(30deg) rotateX(-3.8822856765deg); } .ring:nth-child(6) { --hue: 20; --delay: -1.3333333333s; transform: translate3d(-2.3395555688em, 4.6984631039em, -6.4278760969em) rotateY(40deg) rotateX(-5.1303021499deg); } .ring:nth-child(7) { --hue: 25; --delay: -1.6666666667s; transform: translate3d(-3.5721239031em, 4.5315389352em, -7.6604444312em) rotateY(50deg) rotateX(-6.3392739261deg); } .ring:nth-child(8) { --hue: 30; --delay: -2s; transform: translate3d(-5em, 4.3301270189em, -8.6602540378em) rotateY(60deg) rotateX(-7.5deg); } .ring:nth-child(9) { --hue: 35; --delay: -2.3333333333s; transform: translate3d(-6.5797985667em, 4.0957602214em, -9.3969262079em) rotateY(70deg) rotateX(-8.6036465453deg); } .ring:nth-child(10) { --hue: 40; --delay: -2.6666666667s; transform: translate3d(-8.2635182233em, 3.8302222156em, -9.8480775301em) rotateY(80deg) rotateX(-9.6418141453deg); } .ring:nth-child(11) { --hue: 45; --delay: -3s; transform: translate3d(-10em, 3.5355339059em, -10em) rotateY(90deg) rotateX(-10.6066017178deg); } .ring:nth-child(12) { --hue: 50; --delay: -3.3333333333s; transform: translate3d(-11.7364817767em, 3.2139380484em, -9.8480775301em) rotateY(100deg) rotateX(-11.4906666468deg); } .ring:nth-child(13) { --hue: 55; --delay: -3.6666666667s; transform: translate3d(-13.4202014333em, 2.8678821818em, -9.3969262079em) rotateY(110deg) rotateX(-12.2872806643deg); } .ring:nth-child(14) { --hue: 60; --delay: -4s; transform: translate3d(-15em, 2.5em, -8.6602540378em) rotateY(120deg) rotateX(-12.9903810568deg); } .ring:nth-child(15) { --hue: 65; --delay: -4.3333333333s; transform: translate3d(-16.4278760969em, 2.1130913087em, -7.6604444312em) rotateY(130deg) rotateX(-13.5946168055deg); } .ring:nth-child(16) { --hue: 70; --delay: -4.6666666667s; transform: translate3d(-17.6604444312em, 1.7101007166em, -6.4278760969em) rotateY(140deg) rotateX(-14.0953893118deg); } .ring:nth-child(17) { --hue: 75; --delay: -5s; transform: translate3d(-18.6602540378em, 1.2940952255em, -5em) rotateY(150deg) rotateX(-14.4888873943deg); } .ring:nth-child(18) { --hue: 80; --delay: -5.3333333333s; transform: translate3d(-19.3969262079em, 0.8682408883em, -3.4202014333em) rotateY(160deg) rotateX(-14.7721162952deg); } .ring:nth-child(19) { --hue: 85; --delay: -5.6666666667s; transform: translate3d(-19.8480775301em, 0.4357787137em, -1.7364817767em) rotateY(170deg) rotateX(-14.9429204714deg); } .ring:nth-child(20) { --hue: 90; --delay: -6s; transform: translate3d(-20em, 0em, 0em) rotateY(180deg) rotateX(-15deg); } .ring:nth-child(21) { --hue: 95; --delay: -6.3333333333s; transform: translate3d(-19.8480775301em, -0.4357787137em, 1.7364817767em) rotateY(190deg) rotateX(-14.9429204714deg); } .ring:nth-child(22) { --hue: 100; --delay: -6.6666666667s; transform: translate3d(-19.3969262079em, -0.8682408883em, 3.4202014333em) rotateY(200deg) rotateX(-14.7721162952deg); } .ring:nth-child(23) { --hue: 105; --delay: -7s; transform: translate3d(-18.6602540378em, -1.2940952255em, 5em) rotateY(210deg) rotateX(-14.4888873943deg); } .ring:nth-child(24) { --hue: 110; --delay: -7.3333333333s; transform: translate3d(-17.6604444312em, -1.7101007166em, 6.4278760969em) rotateY(220deg) rotateX(-14.0953893118deg); } .ring:nth-child(25) { --hue: 115; --delay: -7.6666666667s; transform: translate3d(-16.4278760969em, -2.1130913087em, 7.6604444312em) rotateY(230deg) rotateX(-13.5946168055deg); } .ring:nth-child(26) { --hue: 120; --delay: -8s; transform: translate3d(-15em, -2.5em, 8.6602540378em) rotateY(240deg) rotateX(-12.9903810568deg); } .ring:nth-child(27) { --hue: 125; --delay: -8.3333333333s; transform: translate3d(-13.4202014333em, -2.8678821818em, 9.3969262079em) rotateY(250deg) rotateX(-12.2872806643deg); } .ring:nth-child(28) { --hue: 130; --delay: -8.6666666667s; transform: translate3d(-11.7364817767em, -3.2139380484em, 9.8480775301em) rotateY(260deg) rotateX(-11.4906666468deg); } .ring:nth-child(29) { --hue: 135; --delay: -9s; transform: translate3d(-10em, -3.5355339059em, 10em) rotateY(270deg) rotateX(-10.6066017178deg); } .ring:nth-child(30) { --hue: 140; --delay: -9.3333333333s; transform: translate3d(-8.2635182233em, -3.8302222156em, 9.8480775301em) rotateY(280deg) rotateX(-9.6418141453deg); } .ring:nth-child(31) { --hue: 145; --delay: -9.6666666667s; transform: translate3d(-6.5797985667em, -4.0957602214em, 9.3969262079em) rotateY(290deg) rotateX(-8.6036465453deg); } .ring:nth-child(32) { --hue: 150; --delay: -10s; transform: translate3d(-5em, -4.3301270189em, 8.6602540378em) rotateY(300deg) rotateX(-7.5deg); } .ring:nth-child(33) { --hue: 155; --delay: -10.3333333333s; transform: translate3d(-3.5721239031em, -4.5315389352em, 7.6604444312em) rotateY(310deg) rotateX(-6.3392739261deg); } .ring:nth-child(34) { --hue: 160; --delay: -10.6666666667s; transform: translate3d(-2.3395555688em, -4.6984631039em, 6.4278760969em) rotateY(320deg) rotateX(-5.1303021499deg); } .ring:nth-child(35) { --hue: 165; --delay: -11s; transform: translate3d(-1.3397459622em, -4.8296291314em, 5em) rotateY(330deg) rotateX(-3.8822856765deg); } .ring:nth-child(36) { --hue: 170; --delay: -11.3333333333s; transform: translate3d(-0.6030737921em, -4.9240387651em, 3.4202014333em) rotateY(340deg) rotateX(-2.604722665deg); } .ring:nth-child(37) { --hue: 175; --delay: -11.6666666667s; transform: trans.........完整代码请登录后点击上方下载按钮下载查看
网友评论0