js实现带声音频谱显示错误动画效果代码
代码语言:html
所属分类:动画
代码描述:js实现带声音频谱显示错误动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> :root { --bg-color: #090909; --text-color: #e0e0e0; --tile-bg: #121212; --accent-color: #ff6347; --button-bg: linear-gradient(45deg, #ff0844, #f36); --error-bg: hsla(0, 0%, 100%, 0.05); --visualizer-bg: hsla(0, 0%, 100%, 0.08); } *, ::after, ::before { box-sizing: border-box; margin: 0; padding: 0; } body { align-items: center; background: var(--bg-color); color: var(--text-color); display: flex; flex-direction: column; font-family: "Consolas", "Courier New", monospace; height: 100vh; justify-content: center; overflow: hidden; width: 100%; } .container { max-width: 48.75rem; padding: 0.5rem; text-align: center; width: 90%; } .visualizer { align-items: flex-end; background-color: hsla(0, 0%, 100%, 0.1); display: flex; height: 6.25rem; justify-content: space-between; margin-bottom: 0.8rem; overflow: hidden; width: 100%; } .wave-bar { background: linear-gradient(0deg, #f0f, hsla(0, 0%, 100%, 0.3)); flex: 1; margin: 0 0.0625rem; transition: height 0.1s ease-out; } .error-display { animation: fadeIn 0.3s ease-in-out; background: var(--error-bg); border-left: 0.1875rem solid var(--accent-color); border-radius: 0.375rem; padding: 0.75rem; text-align: left; } .error-display, button { font-size: 0.9rem; margin-bottom: 0.8rem; } button { background: var(--button-bg); border: none; border-radius: 0.375rem; color: #fff; cursor: pointer; letter-spacing: 0.025em; padding: 0.6rem 1.4rem; } [disabled] { opacity: 0.6; cursor: not-allowed; } .note-grid { align-items: center; background-color: hsla(0, 0%, 100%, 0.1); display: flex; flex-wrap: nowrap; justify-content: space-between; margin-bottom: 1.6rem; padding: 0; width: 100%; } .note-tile { aspect-ratio: 1/1; background-color: var(--tile-bg); flex: 1; transition: filter 0.2s ease, background-color 0.3s ease-in-out; } .note-tile.active { background-color: currentColor; filter: brightness(1.5); } @keyframes fadeIn { from { opacity: 0; transform: translateY(-0.5rem); } to { opacity: 1; transform: translateY(0); } } @keyframes glitchScreen { 0% { opacity: 1; transform: skewX(0deg); } 20% { opacity: 0.9; transform: skewX(-3deg); } 40% { opacity: 1; transform: skewX(3deg); } 60% { opacity: 0.85; transform: skewX(-2deg); } 100% { opacity: 1; transform: skewX(0deg); } } @keyframes glitchText { 0% { text-shadow: 0.0625rem 0.0625rem red, -0.0625rem -0.0625rem #00f; } 33% { text-shadow: -0.0625rem 0.0625rem green, 0.0625rem -0.0625rem purple; } 66% { text-shadow: 0.0625rem -0.0625rem orange, -0.0625rem 0.0625rem #0ff; } 100% { text-shadow: 0 0 transparent; } } .glitch-effect { animation: glitchScreen 0.4s ease-in-out infinite alternate; } .glitch-text { animation: glitchText 0.4s ease-in-out infinite alternate; } </style> </head> <body translate="no"> <div class="container"> <div class="visualizer" id="visualizer"></div> <div class="error-display" id="errorDisplay"></div> <div class="note-grid" id="noteGrid"></div> <button id="generateError">Initiate Reality Scan</button> </div> <script > document.addEventListener("DOMContentLoaded", () => { const errorConfig = [ { code: 400, message: "Climate Logic Error - Denial particles failed to align with reality", notes: [293.66, 369.99, 466.16], color: "#FF00FF" }, { code: 401, .........完整代码请登录后点击上方下载按钮下载查看
网友评论0