css实现骰子色子3d旋转动画效果代码
代码语言:html
所属分类:动画
代码描述:css实现骰子色子3d旋转动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" /> <style> * { border: 0; box-sizing: border-box; margin: 0; padding: 0; } :root { --hue: 223; --sat: 10%; --white: hsl(0,0%,100%); --light-gray1: hsl(var(--hue),var(--sat),95%); --light-gray2: hsl(var(--hue),var(--sat),90%); --light-gray4: hsl(var(--hue),var(--sat),80%); --gray: hsl(var(--hue),var(--sat),50%); --dark-gray6: hsl(var(--hue),var(--sat),20%); --dark-gray8: hsl(var(--hue),var(--sat),10%); --dark-gray9: hsl(var(--hue),var(--sat),5%); --red1: hsl(0,90%,60%); --red2: hsl(0,90%,50%); --trans-dur: 0.3s; color-scheme: light dark; font-size: clamp(1rem,0.9rem + 0.5vw,1.5rem); } body { background-color: light-dark(var(--white), var(--dark-gray8)); color: light-dark(var(--dark-gray8), var(--light-gray2)); display: flex; font: 1em/1.5 sans-serif; height: 100vh; transition: background-color var(--trans-dur), color var(--trans-dur); } .dice { --dur: 3s; --size: 5em; --size-half: calc(var(--size) / 2 - 0.5px); margin: auto; perspective: 800px; position: relative; width: var(--size); height: var(--size); } .dice__dot, .dice__side, .dice__side:before, .dice__side:after, .dice__sides { animation-duration: var(--dur); animation-timing-function: linear; animation-iteration-count: infinite; } .dice__dot { animation-name: dice-dot-lighting, dice-dot-rotate; background-color: var(--white); box-shadow: 0 calc(var(--size) * 0.05) calc(var(--size) * 0.05) calc(var(--size) * 0.0625) var(--dark-gray9) inset; border-radius: 50%; width: 80%; height: 80%; } .dice__side { animation-name: dice-lighting; backface-visibility: hidden; background-color: var(--light-gray2); box-shadow: 0 0 calc(var(--size) * 0.1) calc(var(--size) * 0.05) var(--white) inset; display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); padding: 12.5%; position: absolute; top: 0; left: 0; transition: background-color var(--trans-dur); } .dice__side:before, .dice__side:after { background-image: linear-gradient(90deg, transparent 90%, var(--gray) 120%); content: ""; display: block; position: absolute; inset: 0; } .dice__side:before { transform: rotate(90deg); } .dice__side:after { animation-name: dice-shadow; opacity: 0; } .dice__side, .dice__sides { width: 100%; height: 100%; } .dice__sides { animation-name: dice-rotate; transform: rotateX(-30deg) rotateY(-45deg); transform-style: preserve-3d; } .dice__side--1 { transform: translate3d(0, 0, var(--size-half)); } .dice__side--2 { transform: rotateY(-90deg) translate3d(0, 0, var(--size-half)); } .dice__side--2, .dice__side--2:after { animation-delay: calc(var(--dur) * -0.25); } .dice__side--3 { box-shadow:.........完整代码请登录后点击上方下载按钮下载查看
网友评论0