tonejs实现一个卡通钢琴弹奏交互效果代码
代码语言:html
所属分类:多媒体
代码描述:tonejs实现一个卡通钢琴弹奏交互效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> @import url("https://fonts.googleapis.com/css2?family=Pragati+Narrow:wght@400;700&display=swap"); * { font-family: 'Pragati Narrow', sans-serif !important; } :root { --keyboard-mode: #FF6B6B; background: #4ECDC4; overflow: hidden; } .container { display: flex; justify-content: center; height: 100%; } .keyandnote { margin: 0 auto; position: absolute; bottom: 20%; } .keyboard { font-size: 12px; font-weight: 400; display: inline-table; padding: 24px; border-radius: 20px 20px 40px 40px; background: var(--keyboard-mode); min-width: 884px; } .keyboard button { outline: none; transition: all 100ms ease-out; margin: 0px; padding: 0px; border: none; color: rgba(26, 83, 92, 0.5); border-radius: 20px 20px 40px 40px; cursor: none; } .keyboard button.white { background: #F7FFF7; width: 40px; height: 140px; box-shadow: inset #E6F1E6 0 -10px 0 0; padding-top: 80px; margin: 1px; } .keyboard button.white:active { box-shadow: inset #E6F1E6 0 -2px 0 0; transform: translate(0, 4px); height: calc($keyboard-white-height - 8px); } .keyboard button.black { background: #1A535C; width: 32px; height: 90px; z-index: 99; position: absolute; transform: translate(-16px, -10px); box-shadow: inset #073B4C 0 -10px 0 0, var(--keyboard-mode) 0 0 0 2px; } .keyboard button.black:active { transform: translate(-16px, -2px); height: calc($keyboard-black-height - 8px); box-shadow: inset #073B4C 0 -2px 0 0, var(--keyboard-mode) 0 0 0 2px; } #notes { position: absolute; bottom: 160px; } #notes span { border-radius: 100px; position: absolute; z-index: -1; transform-origin: center bottom; } #notes span.user { background: var(--note-user); height: 40px; } #notes span.system { background: var(--note-system); } #notes span svg { width: 100%; } #paw { transform: scale(1.2); z-index: 999; position: absolute; bottom: -120px; left: 500px; transform: translate(-50%, 0); pointer-events: none; transition: bottom 100ms ease, left 50ms ease, transform 100ms ease-out; } #paw svg { display: none; } #paw.up { transform: translate(-50%, 0); } #paw.up #open { display: block; } #paw.down { transform: translate(-50%, 8px); } #paw.down #close { display: block; } </style> </head> <body translate="no" > <div class="container"> <div class="keyandnote"> <div id="notes"></div> <div class="keyboard" onmousemove="showCoords(event)" onmouseout="clearCoor()"> <!-- <button class="white" data-note="A2">A2</button> <button class="black" data-note="A#2"></button> <button class="white" data-note="B2">B2</button> --> <button class="white" data-key="C3">C3</button> <button class="black" data-key="C#3"></button> <button class="white" data-key="D3">D3</button> <button class="black" data-key="D#3"></button> <button class="white" data-key="E3">E3</button> <button class="white" data-key="F3">F3</button> <button class="black" data-key="F#3"></button> <button class="white" data-key="G3">G3</button> <button class="black" data-key="G#3"></button> <button class="white" data-key="A3">A3</button> <button class="black" data-key="A#3"></button> <button class="white" data-key="B3">B3</button> <button class="white" data-key="C4">C4</button> <button class="black" data-key="C#4"></button> <button class="white" data-key="D4">D4</button> <button class="black" data-key="D#4"></button> <button class="white" data-key="E4">E4</button> <button class="white" data-key="F4">F4</button> <button class="black" data-key="F#4"></button> <button class="white" data-key="G4">G4</button> <button class="black" data-key="G#4"></button> <button class="white" data-key="A4">A4</button> <button class="black" data-key="A#4"></button> <button class="white" data-key="B4">B4</button> <button class="white" data-key="C5">C5</button> <button class="black" data-key="C#5"></button> <button class="white" data-key="D5">D5</button> <button class="black" data-key="D#5"></button> <button class="white" data-key="E5">E5</button> <button class="white" data-key="F5">F5</button> <button class="black" data-key="F#5"></button> <button class="white" data-key="G5">G5</button> <button class="black" data-key="G#5"></button> <button class="white" data-key="A5">A5</button> <button class="black" data-key="A#5"></button> <button class="white" data-key="B5">B5</button> <!-- <button class="white" data-key="C6">C6</button> <button class="black" data-key="C#6"></button> <button class="white" data-key="D6">D6</button> --> </div> </div> </div> <span id="paw" class="up"> <svg id="close" width="62" height="155" viewBox="0 0 62 155" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M16.8211 45.4678C22.133 56.7758 14.8026 120.174 14.9088 135.074C14.9088 161.21 52.7296 155.876 52.7296 137.527C52.6234 125.081 46.8865 68.5106 51.7735 41.8407C55.3527 22.3079 52.5172 17.3044 45.6117 1.........完整代码请登录后点击上方下载按钮下载查看
网友评论0