css实现有按键反馈的三维游戏手柄效果代码
代码语言:html
所属分类:三维
代码描述:css实现有按键反馈的三维游戏手柄效果代码,点击右上角的方格显示不同视角的手柄效果。
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> @import url('https://fonts.googleapis.com/css2?family=Teko&display=swap'); body { --angle: 35deg; margin: 0; height: 100vh; perspective: 1500px; overflow: hidden; font-family: Teko, Helvetica, Arial, sans-serif; font-size: 3vmin; } *:focus { outline: 0.25vmin dashed red; outline-offset: 0.5vmin; } /* Camera angle */ input[type="radio"] { position: absolute; left: -1000in; } #cam1:checked ~ #snes-gamepad { --x: -1; --y: 1; } #cam2:checked ~ #snes-gamepad { --x: -1; } #cam3:checked ~ #snes-gamepad { --x: -1; --y: -1; } #cam4:checked ~ #snes-gamepad { --y: 1; } #cam6:checked ~ #snes-gamepad { --y: -1; } #cam7:checked ~ #snes-gamepad { --x: 1; --y: 1; } #cam8:checked ~ #snes-gamepad { --x: 1; } #cam9:checked ~ #snes-gamepad { --x: 1; --y: -1; } #cam1:checked ~ #camera label:nth-child(1), #cam2:checked ~ #camera label:nth-child(2), #cam3:checked ~ #camera label:nth-child(3), #cam4:checked ~ #camera label:nth-child(4), #cam5:checked ~ #camera label:nth-child(5), #cam6:checked ~ #camera label:nth-child(6), #cam7:checked ~ #camera label:nth-child(7), #cam8:checked ~ #camera label:nth-child(8), #cam9:checked ~ #camera label:nth-child(9) { background: #f004; mix-blend-mode: color-burn; } #camera { --color1: #ccc; position: absolute; top: 2vmin; right: 2vmin; width: 10vmin; aspect-ratio: 1; display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); background: linear-gradient(#0000 0 30%, #fff 0 36.66%, #0000 0 63.33%, #fff 0 70%, #0000 0), linear-gradient(90deg, #0000 0 30%, #fff 0 36.66%, #0000 0 63.33%, #fff 0 70%, #0000 0), radial-gradient(closest-side, #ccc 33.33%, #0000 0 40%, #ccc 0 99.99%, #0000 0) ; border-radius: 50%; overflow: hidden; gap: 0.125vmin; } /* Gamepad code */ #snes-gamepad { --x: 0; --y: 0; --pos: 0.2vmin; --rotate: rotate3d(var(--x), var(--y), 0, var(--angle)); --gray-light: #ccc; --gray: #b5b5bb; --gray-dark: #585a58; --purple-light: #bbe; --purple-dark: #64b; --button-x: #3c62f8; var(--purple-light); --button-y: #14b161; var(--purple-light); --button-a: #f03025; var(--purple-dark); --button-b: #e9dd34; var(--purple-dark); position: absolute; width: 80vmin; height: 34vmin; top: 50%; left: 50%; transform: translate(-50%, -50%) var(--rotate); transform-style: preserve-3d; transition: transform 1s; } #snes-gamepad * { position: absolute; box-sizing: border-box; transform-style: preserve-3d; } .is3d > div { top: 0; left: 0; width: 100%; height: 100%; } .is3d > div:nth-child(1) { transform: translateZ(calc(var(--pos) * 1)); } .is3d > div:nth-child(2) { transform: translateZ(calc(var(--pos) * 2)); } .is3d > div:nth-child(3) { transform: translateZ(calc(var(--pos) * 3)); } .is3d > div:nth-child(4) { transform: translateZ(calc(var(--pos) * 4)); } .is3d > div:nth-child(5) { transform: translateZ(calc(var(--pos) * 5)); } .is3d > div:nth-child(6) { transform: translateZ(calc(var(--pos) * 6)); } .is3d > div:nth-child(7) { transform: translateZ(calc(var(--pos) * 7)); } .is3d > div:nth-child(8) { transform: translateZ(calc(var(--pos) * 8)); } .is3d > div:nth-child(9) { transform: translateZ(calc(var(--pos) * 9)); } .........完整代码请登录后点击上方下载按钮下载查看
网友评论0