css球形立体圈旋转效果

代码语言:html

所属分类:动画

代码描述:css球形立体圈旋转效果

代码标签: 旋转 效果

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">

<style>
body {
  overflow: hidden;
  background: #5c5757;
}

div {
  position: absolute;
}

.a3d {
  --ay: 0deg;
  --az: 0deg;
  --lim: calc(.5*(var(--p) - 1));
  top: 50%;
  left: 50%;
  transform-style: preserve-3d;
  transform: rotatey(var(--ay)) rotate(var(--az));
  animation: az 9s linear infinite, ay 9s cubic-bezier(0.68, -0.6, 0.32, 1.6) infinite;
}

.dot {
  --abs-idx: max(calc(var(--lim) - var(--idx)), calc(var(--idx) - var(--lim)));
  --sgn-idx: calc(var(--abs-idx)/(var(--idx) - var(--lim)));
  --d: calc(3px + var(--abs-idx)/var(--p)*2em);
  --a: calc(var(--k)*1turn/var(--m));
  --x: calc(var(--abs-idx)*2*2em/var(--m));
  --z: calc((var(--idx) - var(--lim))*2*2em/var(--m));
  margin: calc(-.5*var(--d));
  width: var(--d);
  height: var(--d);
  border-radius: 50%;
  transform: scalex(var(--sgn-idx)) rotate(var(--a)) translate3d(var(--x), 0, var(--z)) rotate(calc(-1*var(--a))) scalex(var(--sgn-idx)) rotate(calc(-1*var(--az))) rotatey(calc(-1*var(--ay)));
  background: radial-gradient(circle at 35% 35%, #fff, hsl(calc((1 - calc(var(--idx)/var(--p)))*37 + calc(var(--idx)/var(--p))*221), calc((1 - calc(var(--idx)/var(--p)))*100% + calc(var(--idx)/var(--p))*79%), calc((1 - calc(var(--idx)/var(--p)))*42% + calc(var(--idx)/var(--p))*63%)) 65%);
}

@keyframes ay {
  0%, 15% {
    --ay: 1turn ;
  }
  50%, 65% {
    --ay: .5turn ;
  }
}
@keyframes az {
  to {
    --az: 1turn ;
  }
}
</style>

</head>
<body translate="no">
<style>.a3d { --m: 24; --p: 241 }.dot:nth-child(24n + 1) { --k: 0 }.dot:nth-child(24n + 2) { --k: 1 }.dot:nth-child(24n + 3) { --k: 2 }.dot:nth-child(24n + 4) { --k: 3 }.dot:nth-child(24n + 5) { --k: 4 }.dot:nth-child(24n + 6) { --k: 5 }.dot:nth-child(24n + 7) { --k: 6 }.dot:nth-child(24n + 8) { --k: 7 }.dot:nth-child(24n + 9) { --k: 8 }.dot:nth-child(24n + 10) { --k: 9 }.dot:nth-child(24n + 11) { --k: 10 }.dot:nth-child(24n + 12) { --k: 11 }.dot:nth-child(24n + 13) { --k: 12 }.dot:nth-child(24n + 14) { --k: 13 }.dot:nth-child(24n + 15) { --k: 14 }.dot:nth-child(24n + 16) { --k: 15 }.dot:nth-child(24n + 17) { --k: 16 }.dot:nth-child(24n + 18) { --k: 17 }.dot:nth-child(24n + 19) { --k: 18 }.dot:nth-child(24n + 20) { --k: 19 }.dot:nth-child(24n + 21) { --k: 20 }.dot:nth-child(24n + 22) { --k: 21 }.dot:nth-child(24n + 23) { --k: 22 }.dot:nth-child(24n + 24) { --k: 23 }
</style>
<div class="a3d">
<div class="dot" style="--idx: 240"></div>
<div class="dot" style="--idx: 239"></div>
<div class="dot" style="--idx: 238"></div>
<div class="dot" style="--idx: 237"></div>
<div class="dot" style="--idx: 236"></div>
<div class="dot" style="--idx: 235"></div>
<div class="dot" style="--idx: 234"></div>
<div class="dot" style="--idx: 233"></div>
<div class="dot" style="--idx: 232"></div>
<div class="dot" style="--idx: 231"></div>
<div class="dot" style="--idx: 230"></div>
<div class="dot" style="--idx: 229"></div>
<div class="dot" style="--idx: 228"></div>
<div class="dot" style="--idx: 227"></div>
<div class="dot" style="--idx: 226"></div>
<div class="dot" style="--idx: 225"></div>
<div class="dot" style="--idx: 224"></div>
<div class="dot" style="--idx: 223"></div>
<div class="dot" style="--idx: 222"></div>
<div class="dot" style="--idx: 221"></div>
<div class="dot" style="--idx: 220"></div>
<div class="dot" style="--idx: 219"></div>
<div class="dot" style="--idx: 218"></div>
<div class="dot" style="--idx: 217"></div>
<div class="dot" style="--idx: 216"></div>
<div class="dot" style="--idx: 215"></div>
<div class="dot" style="--idx: 214"></div>
<div class="dot" style="--idx: 213"></div>
<div class="dot" style="--idx: 212"></div>
<div class="dot" style="--idx: 211"></div>
<div class="dot" style="--idx: 210"></div>
<div class="dot" style="--idx: 209"></div>
<div class="dot" style="--idx: 208"></div>
<div class="dot" style="--idx: 207"></div>
<div class="dot" style="--idx: 206"></div>
<div class="dot" style="--idx: 205"></div>
<div class="dot" style="--idx: 204"></div>
<div class="dot" style="--idx: 203"></div>
<div class="dot" style="--idx: 202"></div>
<div class="dot" style="--idx: 201"></div>
<div class="dot" style="--idx: 200"></div>
<div class="dot" style="--idx: 199"></div>
<div class="dot" style="--idx: 198"></div>
<div class="dot" style="--idx: 197"></div>
<div class="dot" style="--idx: 196"></div>
<div class="dot" style="--idx: 195"></div>
<div class="dot" style="--idx: 194"></div>
<div class="dot" style="--idx: 193"></div>
<div class="dot" style="--idx: 192"></div>
<div class="dot" style="--idx: 191"></div>
<div class="dot" style="--idx: 190"></div>
<div class="dot" style="--idx: 189"></div>
<div class="dot" style="--idx: 188"></div>
<div class="dot" style="--idx: 187"></div>
<div class="dot" style="--idx: 186"></div>
<div class="dot" style="--idx: 185"></div>
<div class="dot" style="--idx: 184"></div>
<div class="dot" style="--idx: 183"></div>
<div class="dot" style="--idx: 182"></div>
<div class="dot" style="--idx: 181"></div>
<div class="dot" style="--idx: 180"></div>
<div class="dot" style="--idx: 179"></div>
<div class="dot" style="--idx: 178"></div>
<div class="dot" style="--idx: 177"></div>
<div class="dot" style="--idx: 176"></div>
<div class="dot" style="--idx: 175"></div>
<div class="dot" style="--idx: 174"></div>
<div class="dot" style="--idx: 173"></div>
<div class="dot" style="--idx: 172"></div>
<div class="dot" style="--idx: 171"></div>
<div class="dot" style="--idx: 170"></div>
<div class="dot" style="--idx: 169"></div>
<div class="dot" style="--idx: 168"></div>
<div class="dot" style="--idx: 167"></div>
<div class="dot" style="--idx: 166"></div>
<div class="dot" style="--idx: 165"></div>
<div class="dot" style="--idx: 164"></div>
<div class="dot" style="--idx: 163"></div>
<div class="dot" style="--idx: 162"></div>
<div class="dot" style="--idx: 161"></div>
<div class="dot" style="--idx: 160"></div>
<div class="dot" style="--idx: 159"></div>
<div class="dot" style="--idx: 158"></div>
<div class="dot" style="--idx: 157"></div>
<div class="dot" style="--idx: 156"></div>
<div class="dot" style="--idx: 155"></div>
<div class="dot" style="--idx: 154"></div>
<div class="dot" style="--idx: 153"></div>
<div class="dot" style="--idx: 152"></div>
<div class="dot" style="--idx: 151"></div>
<div class="dot" style="--idx: 150"></div>
<div class="dot" style="--idx: 149"></div>
<div class="dot" style="--idx: 148"></div>
<div class="dot" style="--idx: 147"></div>
<div class="dot" style="--idx: 146"></div>
<div class="dot" style="--idx: 145"></div>
<div class="dot" style="--idx: 144"></div>
<div class="dot" style="--idx: 143"></div>
<div class="dot" style="--idx: 142"></div>
<div class="dot" style="--idx: 141"></div>
<div class="dot" style="--idx: 140"></div>
<div class="dot" style="--idx: 139"></div>
<div class="dot" style="--idx: 138"></div>
<div class="dot" style="--idx: 137"></div>
<div class="dot" style="--idx: 136"></div>
<div class="d.........完整代码请登录后点击上方下载按钮下载查看

网友评论0