呜啦!日常碎碎念,偶尔掉落优质前端博文推荐、学习资源等
网页:https://tg.cosine.ren
本频道的搜索Bot 来辣 👉 @cosSearchBot
私聊直接发消息就可以搜索啦~
🔖tags
#优质博文 #资源推荐 #博客更新 #碎碎念 #项目更新 #手工 #书摘 #阮一峰的科技周刊 #新动态
图频:Cosine 🎨 Gallery @CosineGallery
猫片: @cosine_cat
网页:https://tg.cosine.ren
本频道的搜索Bot 来辣 👉 @cosSearchBot
私聊直接发消息就可以搜索啦~
🔖tags
#优质博文 #资源推荐 #博客更新 #碎碎念 #项目更新 #手工 #书摘 #阮一峰的科技周刊 #新动态
图频:Cosine 🎨 Gallery @CosineGallery
猫片: @cosine_cat
科幻风格的 3D 音频可视化器,这个真的很酷!
Coding a 3D Audio Visualizer with Three.js, GSAP & Web Audio API
AI 摘要:本文详细介绍了如何使用 Three.js、GSAP 和 Web Audio API 构建一个科幻风格的 3D 音频可视化器,灵感来源于 Webflow & GSAP 社区挑战赛。作者通过创建一个响应音乐的“异常探测器”界面,将声音与视觉效果实时结合,打造了一个充满未来感的沉浸式体验。文章从 Three.js 场景搭建、音频分析、自定义着色器,到 GSAP 动画和交互设计,逐步讲解了实现过程,展示了创意编码如何将技术与艺术融合。
1. 项目背景与灵感
• 源于 Webflow & GSAP 社区挑战赛(主题为“Draggable & Inertia”),作者决定创建一个音乐响应的 3D 可视化器。
• 设计灵感是一个在黑暗虚空中发光的橙白渐变球体,通过 Midjourney 生成视觉原型,并结合 Photoshop 调整作为视觉基础。
• 目标是打造一个科幻“异常探测器”界面,通过音乐驱动视觉效果,融合声音与画面。
2. Three.js 场景搭建
• 使用 Three.js 创建 3D 场景,包括场景、透视相机和渲染器,设置相机位置以获得最佳视角。
• 添加 OrbitControls 实现点击拖拽旋转视角,并设置阻尼效果以提升流畅性。
• 核心对象“异常球体”由两部分组成:外部线框球体(基于 IcosahedronGeometry,使用自定义 ShaderMaterial 实现发光线框效果,随音乐变形)和内部发光球体(基于 SphereGeometry,半透明发光效果形成光晕)。
• 增加背景粒子效果和网格覆盖,结合 Midjourney 生成的背景图像,营造全息显示的科幻氛围。
3. Web Audio API 音频分析
• 使用 Web Audio API 分析音频,支持用户上传音频文件或选择预设曲目。
• 通过 AudioContext 和 AnalyserNode 实时获取音频频率数据(fftSize=2048,平滑常数为 0.8),计算音频强度(audioLevel)用于驱动视觉变化。
• 动画循环中持续更新频率数据,提取平均音量和峰值频率,显示在 UI 上作为“异常指标”。
• 将音频强度值传入着色器和动画,同步音效与视觉效果(如球体亮度、变形程度随音乐强度变化)。
4. 音频响应着色器开发
• 使用 Three.js 的 ShaderMaterial 编写自定义 GLSL 着色器,控制球体的动态外观。
• 顶点着色器:通过 Simplex 噪声函数实现顶点变形,随时间和音频强度变化,音乐强烈时球体更尖锐、混乱。
• 片段着色器:应用 Fresnel 效果增强边缘发光,随音频强度脉动,同时加入微弱的独立呼吸动画(sin 函数)。
• 内部发光球体使用 BackSide 渲染和加色混合,营造柔和光晕效果,增强能量场视觉感。
5. GSAP 动画与交互设计
• 使用 GSAP 实现流畅动画,如音频播放时的相机缩放(靠近球体)和暂停时的恢复,增强戏剧效果。
• 借助 GSAP 的 Draggable 和 InertiaPlugin 插件,制作可拖动的 UI 面板,支持动量效果,用户可“抛掷”面板,增加交互趣味性。
• 实验性地实现 3D 球体拖拽,通过自定义逻辑和惯性衰减模拟物理效果,用户可旋转和抛掷球体。
• GSAP 时间线用于编排多个动画序列(如文本淡出),确保交互和过渡自然流畅。
6. UI 设计与氛围营造
• 设计灵感来源于科幻控制面板,UI 使用简约风格(半透明深色面板、浅色文字),包括控制球体旋转速度、分辨率、变形程度和音频灵敏度的滑块。
• 增加音频频谱分析面板(基于 canvas 绘制频率条形图)和终端日志窗口,模拟高科技系统运行状态。
• 通过 CSS 实现屏幕网格覆盖,添加漂浮粒子效果,结合自制背景音乐,强化沉浸式科幻体验。
7. 总结与成果
• 最终作品是一个互动艺术品,用户加载音乐后,系统“启动”并同步音频与视觉,球体随音乐脉动变形,用户可通过控件调整效果或拖动面板/球体互动。
• 项目展示了 Three.js(渲染与着色器)、Web Audio API(音频分析)和 GSAP(交互动画)如何结合,创造多感官体验,体现了创意编码的潜力。
author Filip Zrnzevic
#前端 #codepen #demo #动画 #svg #gsap
Colourful GSAP animated SVG radio buttons
via Codepen Spark#452
Colourful GSAP animated SVG radio buttons
Josh Dillon continues an electrifying exploration of glitch animation in UI with this set of radio buttons. Make sure to visit Josh's collections for more.
via Codepen Spark#452
#前端 #动画 #gsap #demo
https://codepen.io/snorkltv/full/YPzVOzY
gsap 的 ScrollTrigger 很直观的可视化工具
https://fixupx.com/snorklTV/status/1897685784075075845
https://codepen.io/snorkltv/full/YPzVOzY
gsap 的 ScrollTrigger 很直观的可视化工具
https://fixupx.com/snorklTV/status/1897685784075075845
#前端 #css #gsap #动画 #优质视频 #落地页 #设计 #demo
JavaScript Took Over and Made This Landing Page Irresistible via Youtube Codegrid
前些天看到的这个超牛的网站:https://junni.co.jp/
另一个也是他们的超牛的网站:https://next.junni.co.jp/
没想到今天看到出了个 youtube 视频复刻
JavaScript Took Over and Made This Landing Page Irresistible via Youtube Codegrid
前些天看到的这个超牛的网站:https://junni.co.jp/
另一个也是他们的超牛的网站:https://next.junni.co.jp/
没想到今天看到出了个 youtube 视频复刻