div+css实现三维小球连线钟摆波效果代码
代码语言:html
所属分类:三维
代码描述:div+css实现三维小球连线钟摆波效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> * { padding: 0; margin: 0 auto; box-sizing: border-box; } body { background-color: #000; color: #fff; min-height: 100vh; display: grid; place-items: center; font-size: 40px; perspective: 50em; } body *:not(:empty) { transform-style: preserve-3d; } input[type=checkbox] { display: none; } input[type=checkbox]:checked ~ .pendulum { --ry: 360deg; } input[type=checkbox]:checked ~ label { --ry: 180deg; } label { position: fixed; top: calc(50% - 7em); cursor: pointer; transform: rotateY(var(--ry, 0)); transition: transform 5s; } label:hover > svg { opacity: 0.5; } label svg { width: 3em; height: 2em; fill: #fff; opacity: 0.3; } .pendulum { position: relative; transform: rotateY(var(--ry, 0deg)); transition: transform 10s; } .topbar { position: absolute; top: -4em; } .topbar > div { position: absolute; width: 1em; height: var(--height, 1em); background-color: #420; transform: translate(-50%, -50%) var(--transform); box-shadow: 0 0 1em #000 inset; opacity: 0.9; } .topbar > div:nth-child(1) { --transform: translateZ(8em); } .topbar > div:nth-child(2) { --transform: rotateY(180deg) translateZ(8em); } .topbar > div:nth-child(3) { --height: 16em; --transform: rotateZ(0deg) rotateX(90deg) translateZ(0.5em); } .topbar > div:nth-child(4) { --height: 16em; --transform: rotateZ(90deg) rotateX(90deg) translateZ(0.5em); } .topbar > div:nth-child(5) { --height: 16em; --transform: rotateZ(180deg) rotateX(90deg) translateZ(0.5em); } .topbar > div:nth-child(6) { --height: 16em; --transform: rotateZ(270deg) rotateX(90deg) translateZ(0.5em); } .balls { position: absolute; top: -3.5em; } .ball { position: absolute; -webkit-animation: ballSwing var(--duration, 0s) calc(var(--duration, 0s) * -0.5) infinite ease-in-out alternate; animation: ballSwing var(--duration, 0s) calc(var(--duration, 0s) * -0.5) infinite ease-in-out alternate; } @-webkit-keyframes ballSwing { from { transform: translateZ(var(--tz, 0)) rotateZ(-45deg); } to { transform: translateZ(var(--tz, 0)) rotateZ(45deg); } } @keyframes ballSwing { fr.........完整代码请登录后点击上方下载按钮下载查看
网友评论0