css实现可调节参数的粒子爆炸器效果代码
代码语言:html
所属分类:粒子
代码描述:css实现可调节参数的粒子爆炸器效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> body { display: flex; justify-content: center; align-items: center; height: 100vh; background: #fff; --delay1: 5; --delay2: 5; --delay3: 5; --cubic1: 0.5; --cubic2: 1; --cubic3: 0.5; --cubic4: 1.25; --offset: 0.25; --hue: 0deg; --size: 5px; } body #controls { position: absolute; width: 100%; bottom: 25px; display: grid; grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(5, 1fr); grid-column-gap: 40px; grid-row-gap: 0px; padding: 20px 40px; box-sizing: border-box; max-width: 350px; z-index: 10; } @media (max-height: 700px) { body #controls { grid-template-columns: repeat(5, 1fr); grid-template-rows: repeat(2, 1fr); max-width: 100%; } } @media (min-width: 768px) and (min-height: 700px) { body #controls { display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(3, 1fr); max-width: 500px; height: 175px; } body #controls .control:nth-of-type(9) { grid-area: 5/1/6/3; padding: 0; } body #controls .control:nth-of-type(10) { grid-area: 5/3/6/5; padding: 0; } } body #controls .control { padding: 10px 0; } body #controls .control:hover label { color: #000; } body #controls .control label { transition: 0.3s ease-in-out; color: #666; width: 100%; text-align: center; font-size: 10px; font-family: Futura; text-transform: uppercase; display: block; } body #controls .control:nth-of-type(1) input[type=range]::-webkit-slider-thumb { background: #40e0d0; } body #controls .control:nth-of-type(2) input[type=range]::-webkit-slider-thumb { background: #40e0d0; } body #controls .control:nth-of-type(3) input[type=range]::-webkit-slider-thumb { background: #40e0d0; } body #controls .control:nth-of-type(4) input[type=range]::-webkit-slider-thumb { background: #40e0d0; } body #controls .control:nth-of-type(5) input[type=range]::-webkit-slider-thumb { background: #ff8c00; } body #controls .control:nth-of-type(6) input[type=range]::-webkit-slider-thumb { background: #ff8c00; } body #controls .control:nth-of-type(7) input[type=range]::-webkit-slider-thumb { background: #ff8c00; } body #controls .control:nth-of-type(8) input[type=range]::-webkit-slider-thumb { background: #ff8c00; } body #controls input[type=range] { -webkit-appearance: none; background: transparent; width: 100%; } body #controls input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; } body #controls input[type=range]:focus { outline: none; } body #controls input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; height: 15px; width: 15px; border-radius: 50px; cursor: pointer; margin-top: -6px; background: #ff0080; box-shadow: 0 0 0 3px #fff, inset 0 0 20px -20px rgba(0, 0, 0, 0.25); -webkit-transition: 0.3s ease-in-out; transition: 0.3s ease-in-out; } body #controls input[type=range]::-webkit-slider-thumb:active { box-shadow: 0 0 0 3px #fff, inset 0 0 20px 20px rgba(0, 0, 0, 0.25); } body #controls input[type=range]::-webkit-slider-runnable-track, body #controls input[type=range]:focus::-webkit-slider-runnable-track { height: 2px; cursor: pointer; background: #ccc; border-radius: 25px; outline: none; } body #wrap { width: 0px; height: 0px; position: relative; transform: translateY(-75px); filter: hue-rotate(var(--hue)); } body #wrap:before, body #wrap:after { content: ""; border-radius: 100%; position: absolute; width: 500px; height: 500px; top: calc(50% - 250px); left: calc(50% - 250px); background: linear-gradient(to right, #40e0d0, #ff8c00, #ff0080); -webkit-animation: rotate 6s linear infinite; animation: rotate 6s linear infinite; box-shadow: 0 0 0 5px #fff, 0 0 0 7px #40e0d0, 0 0 80px -40px #000; z-index: 10; mix-blend-mode: darken; } @-webkit-keyframes rotate { to { transform: rotate(360deg); } } @keyframes rotate { to { transform: rotate(360deg); } } body #wrap:after { background: #000; z-index: 8; mix-blend-mode: none; } body #wrap .circle { z-index: 9; width: 0px; height: 0px; position: absolute; } body #wrap .circle:nth-of-type(3) { transform-origin: 50% 50%; transform: rotate(360deg) translateY(calc(14.04px * var(--offset))); } body #wrap .circle:nth-of-type(3) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-0.15s * var(--delay3)); animation-delay: calc(-0.15s * var(--delay3)); } body #wrap .circle:nth-of-type(3) .inner:before, body #wrap .circle:nth-of-type(3) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.05s * var(--delay1)); animation-delay: calc(-0.05s * var(--delay1)); transform-origin: 50% 25px; } @-webkit-keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @-webkit-keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(3) .inner:after { -webkit-animation-delay: calc(-2.15s * var(--delay2)); animation-delay: calc(-2.15s * var(--delay2)); transform-origin: 50% -25px; } @-webkit-keyframes bounceIn { to { transform: translateY(50px); } } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(4) { transform-origin: 50% 50%; transform: rotate(480deg) translateY(calc(14.04px * var(--offset))); } body #wrap .circle:nth-of-type(4) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-0.15s * var(--delay3)); animation-delay: calc(-0.15s * var(--delay3)); } body #wrap .circle:nth-of-type(4) .inner:before, body #wrap .circle:nth-of-type(4) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.0666666667s * var(--delay1)); animation-delay: calc(-0.0666666667s * var(--delay1)); transform-origin: 50% 25px; } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(4) .inner:after { -webkit-animation-delay: calc(-2.2s * var(--delay2)); animation-delay: calc(-2.2s * var(--delay2)); transform-origin: 50% -25px; } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(5) { transform-origin: 50% 50%; transform: rotate(600deg) translateY(calc(14.04px * var(--offset))); } body #wrap .circle:nth-of-type(5) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-0.15s * var(--delay3)); animation-delay: calc(-0.15s * var(--delay3)); } body #wrap .circle:nth-of-type(5) .inner:before, body #wrap .circle:nth-of-type(5) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.0833333333s * var(--delay1)); animation-delay: calc(-0.0833333333s * var(--delay1)); transform-origin: 50% 25px; } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(5) .inner:after { -webkit-animation-delay: calc(-2.25s * var(--delay2)); animation-delay: calc(-2.25s * var(--delay2)); transform-origin: 50% -25px; } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(6) { transform-origin: 50% 50%; transform: rotate(720deg) translateY(calc(14.04px * var(--offset))); } body #wrap .circle:nth-of-type(6) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-0.15s * var(--delay3)); animation-delay: calc(-0.15s * var(--delay3)); } body #wrap .circle:nth-of-type(6) .inner:before, body #wrap .circle:nth-of-type(6) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.1s * var(--delay1)); animation-delay: calc(-0.1s * var(--delay1)); transform-origin: 50% 25px; } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(6) .inner:after { -webkit-animation-delay: calc(-2.3s * var(--delay2)); animation-delay: calc(-2.3s * var(--delay2)); transform-origin: 50% -25px; } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(6) { transform-origin: 50% 50%; transform: rotate(360deg) translateY(calc(27.36px * var(--offset))); } body #wrap .circle:nth-of-type(6) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-0.3s * var(--delay3)); animation-delay: calc(-0.3s * var(--delay3)); } body #wrap .circle:nth-of-type(6) .inner:before, body #wrap .circle:nth-of-type(6) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.1s * var(--delay1)); animation-delay: calc(-0.1s * var(--delay1)); transform-origin: 50% 25px; } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(6) .inner:after { -webkit-animation-delay: calc(-2.3s * var(--delay2)); animation-delay: calc(-2.3s * var(--delay2)); transform-origin: 50% -25px; } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(7) { transform-origin: 50% 50%; transform: rotate(420deg) translateY(calc(27.36px * var(--offset))); } body #wrap .circle:nth-of-type(7) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-0.3s * var(--delay3)); animation-delay: calc(-0.3s * var(--delay3)); } body #wrap .circle:nth-of-type(7) .inner:before, body #wrap .circle:nth-of-type(7) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.1166666667s * var(--delay1)); animation-delay: calc(-0.1166666667s * var(--delay1)); transform-origin: 50% 25px; } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(7) .inner:after { -webkit-animation-delay: calc(-2.35s * var(--delay2)); animation-delay: calc(-2.35s * var(--delay2)); transform-origin: 50% -25px; } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(8) { transform-origin: 50% 50%; transform: rotate(480deg) translateY(calc(27.36px * var(--offset))); } body #wrap .circle:nth-of-type(8) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-0.3s * var(--delay3)); animation-delay: calc(-0.3s * var(--delay3)); } body #wrap .circle:nth-of-type(8) .inner:before, body #wrap .circle:nth-of-type(8) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.1333333333s * var(--delay1)); animation-delay: calc(-0.1333333333s * var(--delay1)); transform-origin: 50% 25px; } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(8) .inner:after { -webkit-animation-delay: calc(-2.4s * var(--delay2)); animation-delay: calc(-2.4s * var(--delay2)); transform-origin: 50% -25px; } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(9) { transform-origin: 50% 50%; transform: rotate(540deg) translateY(calc(27.36px * var(--offset))); } body #wrap .circle:nth-of-type(9) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-0.3s * var(--delay3)); animation-delay: calc(-0.3s * var(--delay3)); } body #wrap .circle:nth-of-type(9) .inner:before, body #wrap .circle:nth-of-type(9) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.15s * var(--delay1)); animation-delay: calc(-0.15s * var(--delay1)); transform-origin: 50% 25px; } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(9) .inner:after { -webkit-animation-delay: calc(-2.45s * var(--delay2)); animation-delay: calc(-2.45s * var(--delay2)); transform-origin: 50% -25px; } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(10) { transform-origin: 50% 50%; transform: rotate(600deg) translateY(calc(27.36px * var(--offset))); } body #wrap .circle:nth-of-type(10) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-0.3s * var(--delay3)); animation-delay: calc(-0.3s * var(--delay3)); } body #wrap .circle:nth-of-type(10) .inner:before, body #wrap .circle:nth-of-type(10) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.1666666667s * var(--delay1)); animation-delay: calc(-0.1666666667s * var(--delay1)); transform-origin: 50% 25px; } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(10) .inner:after { -webkit-animation-delay: calc(-2.5s * var(--delay2)); animation-delay: calc(-2.5s * var(--delay2)); transform-origin: 50% -25px; } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(11) { transform-origin: 50% 50%; transform: rotate(660deg) translateY(calc(27.36px * var(--offset))); } body #wrap .circle:nth-of-type(11) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-0.3s * var(--delay3)); animation-delay: calc(-0.3s * var(--delay3)); } body #wrap .circle:nth-of-type(11) .inner:before, body #wrap .circle:nth-of-type(11) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.1833333333s * var(--delay1)); animation-delay: calc(-0.1833333333s * var(--delay1)); transform-origin: 50% 25px; } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(11) .inner:after { -webkit-animation-delay: calc(-2.55s * var(--delay2)); animation-delay: calc(-2.55s * var(--delay2)); transform-origin: 50% -25px; } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(12) { transform-origin: 50% 50%; transform: rotate(720deg) translateY(calc(27.36px * var(--offset))); } body #wrap .circle:nth-of-type(12) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-0.3s * var(--delay3)); animation-delay: calc(-0.3s * var(--delay3)); } body #wrap .circle:nth-of-type(12) .inner:before, body #wrap .circle:nth-of-type(12) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.2s * var(--delay1)); animation-delay: calc(-0.2s * var(--delay1)); transform-origin: 50% 25px; } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(12) .inner:after { -webkit-animation-delay: calc(-2.6s * var(--delay2)); animation-delay: calc(-2.6s * var(--delay2)); transform-origin: 50% -25px; } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(12) { transform-origin: 50% 50%; transform: rotate(360deg) translateY(calc(51.84px * var(--offset))); } body #wrap .circle:nth-of-type(12) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-0.6s * var(--delay3)); animation-delay: calc(-0.6s * var(--delay3)); } body #wrap .circle:nth-of-type(12) .inner:before, body #wrap .circle:nth-of-type(12) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.2s * var(--delay1)); animation-delay: calc(-0.2s * var(--delay1)); transform-origin: 50% 25px; } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(12) .inner:after { -webkit-animation-delay: calc(-2.6s * var(--delay2)); animation-delay: calc(-2.6s * var(--delay2)); transform-origin: 50% -25px; } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(13) { transform-origin: 50% 50%; transform: rotate(390deg) translateY(calc(51.84px * var(--offset))); } body #wrap .circle:nth-of-type(13) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-0.6s * var(--delay3)); animation-delay: calc(-0.6s * var(--delay3)); } body #wrap .circle:nth-of-type(13) .inner:before, body #wrap .circle:nth-of-type(13) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.2166666667s * var(--delay1)); animation-delay: calc(-0.2166666667s * var(--delay1)); transform-origin: 50% 25px; } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(13) .inner:after { -webkit-animation-delay: calc(-2.65s * var(--delay2)); animation-delay: calc(-2.65s * var(--delay2)); transform-origin: 50% -25px; } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(14) { transform-origin: 50% 50%; transform: rotate(420deg) translateY(calc(51.84px * var(--offset))); } body #wrap .circle:nth-of-type(14) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-0.6s * var(--delay3)); animation-delay: calc(-0.6s * var(--delay3)); } body #wrap .circle:nth-of-type(14) .inner:before, body #wrap .circle:nth-of-type(14) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.2333333333s * var(--delay1)); animation-delay: calc(-0.2333333333s * var(--delay1)); transform-origin: 50% 25px; } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(14) .inner:after { -webkit-animation-delay: calc(-2.7s * var(--delay2)); animation-delay: calc(-2.7s * var(--delay2)); transform-origin: 50% -25px; } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(15) { transform-origin: 50% 50%; transform: rotate(450deg) translateY(calc(51.84px * var(--offset))); } body #wrap .circle:nth-of-type(15) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-0.6s * var(--delay3)); animation-delay: calc(-0.6s * var(--delay3)); } body #wrap .circle:nth-of-type(15) .inner:before, body #wrap .circle:nth-of-type(15) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.25s * var(--delay1)); animation-delay: calc(-0.25s * var(--delay1)); transform-origin: 50% 25px; } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(15) .inner:after { -webkit-animation-delay: calc(-2.75s * var(--delay2)); animation-delay: calc(-2.75s * var(--delay2)); transform-origin: 50% -25px; } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(16) { transform-origin: 50% 50%; transform: rotate(480deg) translateY(calc(51.84px * var(--offset))); } body #wrap .circle:nth-of-type(16) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-0.6s * var(--delay3)); animation-delay: calc(-0.6s * var(--delay3)); } body #wrap .circle:nth-of-type(16) .inner:before, body #wrap .circle:nth-of-type(16) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.2666666667s * var(--delay1)); animation-delay: calc(-0.2666666667s * var(--delay1)); transform-origin: 50% 25px; } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(16) .inner:after { -webkit-animation-delay: calc(-2.8s * var(--delay2)); animation-delay: calc(-2.8s * var(--delay2)); transform-origin: 50% -25px; } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(17) { transform-origin: 50% 50%; transform: rotate(510deg) translateY(calc(51.84px * var(--offset))); } body #wrap .circle:nth-of-type(17) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-0.6s * var(--delay3)); animation-delay: calc(-0.6s * var(--delay3)); } body #wrap .circle:nth-of-type(17) .inner:before, body #wrap .circle:nth-of-type(17) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.2833333333s * var(--delay1)); animation-delay: calc(-0.2833333333s * var(--delay1)); transform-origin: 50% 25px; } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(17) .inner:after { -webkit-animation-delay: calc(-2.85s * var(--delay2)); animation-delay: calc(-2.85s * var(--delay2)); transform-origin: 50% -25px; } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(18) { transform-origin: 50% 50%; transform: rotate(540deg) translateY(calc(51.84px * var(--offset))); } body #wrap .circle:nth-of-type(18) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-0.6s * var(--delay3)); animation-delay: calc(-0.6s * var(--delay3)); } body #wrap .circle:nth-of-type(18) .inner:before, body #wrap .circle:nth-of-type(18) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.3s * var(--delay1)); animation-delay: calc(-0.3s * var(--delay1)); transform-origin: 50% 25px; } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(18) .inner:after { -webkit-animation-delay: calc(-2.9s * var(--delay2)); animation-delay: calc(-2.9s * var(--delay2)); transform-origin: 50% -25px; } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(19) { transform-origin: 50% 50%; transform: rotate(570deg) translateY(calc(51.84px * var(--offset))); } body #wrap .circle:nth-of-type(19) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-0.6s * var(--delay3)); animation-delay: calc(-0.6s * var(--delay3)); } body #wrap .circle:nth-of-type(19) .inner:before, body #wrap .circle:nth-of-type(19) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.3166666667s * var(--delay1)); animation-delay: calc(-0.3166666667s * var(--delay1)); transform-origin: 50% 25px; } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(19) .inner:after { -webkit-animation-delay: calc(-2.95s * var(--delay2)); animation-delay: calc(-2.95s * var(--delay2)); transform-origin: 50% -25px; } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(20) { transform-origin: 50% 50%; transform: rotate(600deg) translateY(calc(51.84px * var(--offset))); } body #wrap .circle:nth-of-type(20) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-0.6s * var(--delay3)); animation-delay: calc(-0.6s * var(--delay3)); } body #wrap .circle:nth-of-type(20) .inner:before, body #wrap .circle:nth-of-type(20) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.3333333333s * var(--delay1)); animation-delay: calc(-0.3333333333s * var(--delay1)); transform-origin: 50% 25px; } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(20) .inner:after { -webkit-animation-delay: calc(-3s * var(--delay2)); animation-delay: calc(-3s * var(--delay2)); transform-origin: 50% -25px; } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(21) { transform-origin: 50% 50%; transform: rotate(630deg) translateY(calc(51.84px * var(--offset))); } body #wrap .circle:nth-of-type(21) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-0.6s * var(--delay3)); animation-delay: calc(-0.6s * var(--delay3)); } body #wrap .circle:nth-of-type(21) .inner:before, body #wrap .circle:nth-of-type(21) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.35s * var(--delay1)); animation-delay: calc(-0.35s * var(--delay1)); transform-origin: 50% 25px; } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(21) .inner:after { -webkit-animation-delay: calc(-3.05s * var(--delay2)); animation-delay: calc(-3.05s * var(--delay2)); transform-origin: 50% -25px; } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(22) { transform-origin: 50% 50%; transform: rotate(660deg) translateY(calc(51.84px * var(--offset))); } body #wrap .circle:nth-of-type(22) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-0.6s * var(--delay3)); animation-delay: calc(-0.6s * var(--delay3)); } body #wrap .circle:nth-of-type(22) .inner:before, body #wrap .circle:nth-of-type(22) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.3666666667s * var(--delay1)); animation-delay: calc(-0.3666666667s * var(--delay1)); transform-origin: 50% 25px; } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(22) .inner:after { -webkit-animation-delay: calc(-3.1s * var(--delay2)); animation-delay: calc(-3.1s * var(--delay2)); transform-origin: 50% -25px; } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(23) { transform-origin: 50% 50%; transform: rotate(690deg) translateY(calc(51.84px * var(--offset))); } body #wrap .circle:nth-of-type(23) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-0.6s * var(--delay3)); animation-delay: calc(-0.6s * var(--delay3)); } body #wrap .circle:nth-of-type(23) .inner:before, body #wrap .circle:nth-of-type(23) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.3833333333s * var(--delay1)); animation-delay: calc(-0.3833333333s * var(--delay1)); transform-origin: 50% 25px; } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(23) .inner:after { -webkit-animation-delay: calc(-3.15s * var(--delay2)); animation-delay: calc(-3.15s * var(--delay2)); transform-origin: 50% -25px; } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(24) { transform-origin: 50% 50%; transform: rotate(720deg) translateY(calc(51.84px * var(--offset))); } body #wrap .circle:nth-of-type(24) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-0.6s * var(--delay3)); animation-delay: calc(-0.6s * var(--delay3)); } body #wrap .circle:nth-of-type(24) .inner:before, body #wrap .circle:nth-of-type(24) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.4s * var(--delay1)); animation-delay: calc(-0.4s * var(--delay1)); transform-origin: 50% 25px; } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(24) .inner:after { -webkit-animation-delay: calc(-3.2s * var(--delay2)); animation-delay: calc(-3.2s * var(--delay2)); transform-origin: 50% -25px; } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(24) { transform-origin: 50% 50%; transform: rotate(360deg) translateY(calc(92.16px * var(--offset))); } body #wrap .circle:nth-of-type(24) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-1.2s * var(--delay3)); animation-delay: calc(-1.2s * var(--delay3)); } body #wrap .circle:nth-of-type(24) .inner:before, body #wrap .circle:nth-of-type(24) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; -webkit-animation-delay: calc(-0.4s * var(--delay1)); animation-delay: calc(-0.4s * var(--delay1)); transform-origin: 50% 25px; } @keyframes shadow { to { box-shadow: 0 100px 0 -10px #fff, 0px -100px 0 -10px #fff, 100px 0 0 -10px #fff, -100px 0 0 -10px #fff; } } @keyframes bounce2 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } body #wrap .circle:nth-of-type(24) .inner:after { -webkit-animation-delay: calc(-3.2s * var(--delay2)); animation-delay: calc(-3.2s * var(--delay2)); transform-origin: 50% -25px; } @keyframes bounceIn { to { transform: translateY(50px); } } body #wrap .circle:nth-of-type(25) { transform-origin: 50% 50%; transform: rotate(375deg) translateY(calc(92.16px * var(--offset))); } body #wrap .circle:nth-of-type(25) .inner { content: ""; position: absolute; width: 20px; height: 20px; top: 10px; left: calc(50% - 10px); border-radius: 100%; display: inline-block; -webkit-animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; animation: bounceIn 3s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite alternate; -webkit-animation-delay: calc(-1.2s * var(--delay3)); animation-delay: calc(-1.2s * var(--delay3)); } body #wrap .circle:nth-of-type(25) .inner:before, body #wrap .circle:nth-of-type(25) .inner:after { content: ""; position: absolute; display: inline-block; top: calc(50% - (var(--size) / 2)); left: calc(50% - (var(--size) / 2)); width: var(--size); height: var(--size); background: #fff; border-radius: 100px; box-shadow: 0 0px #fff, 0px 0 #fff, 0px 0 #fff, 0px 0 #fff; -webkit-animation: bounce2 4s cubic-bezier(var(--cubic1), var(--cubic2), var(--cubic3), var(--cubic4)) infinite, shadow 2s ease-in-out infinite; .........完整代码请登录后点击上方下载按钮下载查看
网友评论0