js+css实现莫比乌斯螺旋动画效果代码
代码语言:html
所属分类:动画
代码描述:js+css实现莫比乌斯螺旋动画效果代码,可点击右下角调色板变色。
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> .mobius:nth-child(even) .block > :nth-child(-n+2)::after, .mobius:nth-child(odd) .block > :nth-child(-n+2)::after, .mobius:nth-child(even) .block > :nth-child(-n+2)::before, .mobius:nth-child(odd) .block > :nth-child(-n+2)::before { content: ""; } .mobius:nth-child(even) .block, .mobius:nth-child(even) .block::after, .mobius:nth-child(even) .block::before, .mobius:nth-child(even) .block > :nth-child(-n+2), .mobius:nth-child(even) .block > :nth-child(-n+2)::after, .mobius:nth-child(even) .block > :nth-child(-n+2)::before, .mobius:nth-child(even), .mobius:nth-child(even) .blocks, .mobius:nth-child(odd) .block, .mobius:nth-child(odd) .block::after, .mobius:nth-child(odd) .block::before, .mobius:nth-child(odd) .block > :nth-child(-n+2), .mobius:nth-child(odd) .block > :nth-child(-n+2)::after, .mobius:nth-child(odd) .block > :nth-child(-n+2)::before, .mobius:nth-child(odd), .mobius:nth-child(odd) .blocks, body, .scene { position: absolute; transform-style: preserve-3d; } .mobius:nth-child(even) .block, .mobius:nth-child(even) .block::after, .mobius:nth-child(even) .block::before, .mobius:nth-child(even) .block > :nth-child(-n+2), .mobius:nth-child(even) .block > :nth-child(-n+2)::after, .mobius:nth-child(even) .block > :nth-child(-n+2)::before, .mobius:nth-child(even), .mobius:nth-child(even) .blocks, .mobius:nth-child(odd) .block, .mobius:nth-child(odd) .block::after, .mobius:nth-child(odd) .block::before, .mobius:nth-child(odd) .block > :nth-child(-n+2), .mobius:nth-child(odd) .block > :nth-child(-n+2)::after, .mobius:nth-child(odd) .block > :nth-child(-n+2)::before, .mobius:nth-child(odd), .mobius:nth-child(odd) .blocks, body, .scene { display: grid; place-self: center; } .mobius:nth-child(even) .block > *, .mobius:nth-child(even) .block::after > *, .mobius:nth-child(even) .block::before > *, .mobius:nth-child(even) .block > :nth-child(-n+2) > *, .mobius:nth-child(even) .block > :nth-child(-n+2)::after > *, .mobius:nth-child(even) .block > :nth-child(-n+2)::before > *, .mobius:nth-child(even) > *, .mobius:nth-child(even) .blocks > *, .mobius:nth-child(odd) .block > *, .mobius:nth-child(odd) .block::after > *, .mobius:nth-child(odd) .block::before > *, .mobius:nth-child(odd) .block > :nth-child(-n+2) > *, .mobius:nth-child(odd) .block > :nth-child(-n+2)::after > *, .mobius:nth-child(odd) .block > :nth-child(-n+2)::before > *, .mobius:nth-child(odd) > *, .mobius:nth-child(odd) .blocks > *, body > *, .scene > * { place-self: center; } :root { --perspective: 400vmin; } *, *::after, *::before { margin: 0; border: 0; padding: 0; box-sizing: border-box; } body { height: 100vh; width: 100vw; overflow: hidden; perspective: var(--perspective); background: var(--background, #000); } .themes.horizontal { width: 100vw; } .themes.vertical { height: 100vh; } .themes-trigger, .themes-menu { position: absolute; } .themes-trigger, .themes-select { height: 48px; width: 48px; -webkit-appearance: none; -moz-appearance: none; appearance: none; border-radius: 50%; cursor: pointer; } .themes-menu { display: flex; overflow: hidden; will-change: transform; transition: transform 0.5s ease-in-out; /* width */ /* Track */ /* Handle */ /* Handle on hover */ } .themes-menu::-webkit-scrollbar-track { background: transparent; } .themes-menu::-webkit-scrollbar-thumb { background: var(--stroke, gray); border-radius: 10px; } .themes-menu::-webkit-scrollbar-thumb:hover { background: var(--hover, darkgray); } .themes.horizontal .themes-menu { flex-wrap: nowrap; overflow-x: scroll; height: 78px; width: calc(100% - 48px - 20px); bottom: 0; transform: translatey(78px); /* width */ } .themes.horizontal .themes-menu::-webkit-scrollbar { height: 10px; } .themes.vertical .themes-menu { flex-wrap: wrap; overflow-y: scroll; height: calc(100% - 48px - 20px); width: 78px; right: 0; transform: translatex(78px); /* width */ } .themes.vertical .themes-menu::-webkit-scrollbar { width: 10px; } .........完整代码请登录后点击上方下载按钮下载查看
网友评论0