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