纯css实现一个三维五角星旋转动画效果代码
代码语言:html
所属分类:三维
代码描述:纯css实现一个三维五角星旋转动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> @charset "UTF-8"; @keyframes float { to { transform: translateY(0.75em); } } @property --houdini { syntax: "<integer>"; initial-value: 1; inherits: true; } body, div { display: grid; } body { --s: var(--houdini, 0); --not-s: calc(1 - var(--s)); overflow: hidden; margin: 0; height: 100vh; perspective: 35em; background: #000014; } div, ::before, ::after { grid-area: 1/1; } div { transform-style: preserve-3d; } .⭐ { animation: rot-y 12s linear infinite; } @keyframes rot-y { to { transform: rotateY(1turn); } } @property --int { syntax: "<integer>"; initial-value: 0; inherits: false; } .arm { --sgn-q: calc(2*var(--q) - 1); --p: calc(var(--i)/var(--n)); --not-up: Min(1, var(--i)); --up: calc(1 - var(--not-up)); --dif: calc(2*var(--i) - var(--n)); --not-dn: Min(1, Max(var(--dif), calc(-1*var(--dif)))); --dn: calc(1 - var(--not-dn)); place-self: center; height: 0; transform: rotatex(calc(var(--p)*1turn)) translatey(-16em); } .arm::before, .arm::after { --k: 0; --sgn-k: calc(2*var(--k) - 1); --sum: calc(var(--p) + var(--sgn-k)*var(--rcm) + 1); --int: calc(var(--sum) - .5); --mod: calc(var(--sum) - var(--int)); --term: calc(var(--s)*var(--mod) + var(--not-s)*var(--p)); --abs: Max(calc(var(--term) - .5), calc(.5 - var(--term))); --inc: calc(2*var(--abs) - .5); --sgn-j: calc(var(--dn)*var(--sgn-k) - var(--up)*var(--sgn-k) + var(--not-dn)*var(--not-up)*clamp(-1, var(--dif), 1)); --j: calc(.5*(var(--sgn-j) + 1)); --sh: calc(.25*(3*var(--q) - var(--sgn-q)*(1 - var(--j)))); width: calc(2*var(--rsw)*16em); height: calc(var(--rsh)*16em); transform-origin: 50% 0; transform: rotatey(calc(var(--k)*.5turn)) rotatex(var(--ax)) scalex(calc(var(--sg.........完整代码请登录后点击上方下载按钮下载查看
网友评论0