
精选 2026 年 8 月 3 日至 16 日的 7 个前端创意 Demo,比较 DOM/CSS、GSAP、WebGL 与 WebGPU 在共享输入、GPU 实例化和内容导航上的分工,并给出可复用的工程拆解。
| Demo | 来源与日期 | 核心技术栈 | 先看什么 |
|---|---|---|---|
| HAOQI.DESIGN | Codrops,2026-08-15 1 | Next.js、React、Lenis、Three.js、React Three Fiber、Drei、自定义 shader、后处理 | DOM 与 WebGL 共用一帧滚动快照 |
| Interactive 3D Cluster | Codrops,2026-08-12 2 | Three.js、TSL、WebGPU、three-start、GSAP | icosahedron 面片实例化、噪声形变和 hover |
| Geometry Painter | Codrops,2026-08-11 3 | Three.js、WebGPU、TSL、three-mesh-bvh、实例化、自定义 shader | 一次拖动如何变成可切换的四种生长模式 |
| Chems.Studio | Codrops,2026-08-08 4 | Webflow、Swup.js、Vimeo API、自定义播放器 | 同一套三列网格如何切成首页、档案和横向详情 |
| SSTR | Awwwards SOTD,2026-08-16 5 | GSAP、Barba.js、Astro | 工程主题网站怎样用转场和 CMS 页面保持统一 |
| Revelatio Studio | Awwwards SOTD,2026-08-12 6 | WebGL、GSAP、Webflow | Hero、Work、Cities、Process 如何组成一条浏览路径 |
| No Art | Awwwards SOTD,2026-08-06 7 | GSAP、Shopify、3D、Webflow | 音乐、商品、活动和页面加载如何共用动效语言 |
requestAnimationFrame,快速滚动时,DOM 已经到了新位置,WebGL 还在读上一帧的 scrollY。后来作者关闭 Lenis 的自动 RAF,让 R3F 通过 addEffect 调用 lenis.raf,再由 ScrollBus 保存当帧的滚动快照。之后的 useFrame 和 React 消费者都读同一个快照,两个世界才真正对齐。1InstancedMesh 共享材质和一次 draw。可以直接带走的实现方式有三条:ScrollBus 或类似快照对象保存当帧的 scrollTop、速度和方向,别让每个组件自己读滚动值。three-start、GSAP;源码:codrops-tutorial-dark-cluster。2three-start 把渲染循环、相机、resize 等基础工作包起来,还把应用拆成全局模块与挂在 Object3D 上的组件;一个 Spin 组件可以接收轴和速度,也可以重复挂到同一个对象上。2Observer 接收输入,Raycaster 找到命中的位置,再把命中点写入 uniform,让 shader 根据距离改变面片的大小。2three-mesh-bvh、GPU 实例化、lil-gui、自定义 shader;源码:GeometryPainterThreeJS。3three-mesh-bvh 的 firstHitOnly 还让射线在找到最近三角形后尽快结束,避免每次拖动都收集整棵树的命中结果。3SurfaceSample 只描述一次拾取得到的空间信息。StrokeInstance 只描述沿路径生成的实例数据和 seed。createStroke,不修改输入、撤销和交互代码。preloading 只负责资源准备,hero-ready 负责一次性的空间进入,content-browse 交回 HTML 结构。这个状态边界能让 WebGL 失败时直接降级到静态 Hero,也让移动端不必承担整页的 3D 任务。这里的状态设计是基于页面元素和技术标签的工程推断,Awwwards 页面没有公开具体代码实现。6page-load、label、product、event 和 globe 可以共享一组进出场、遮罩和指针反馈,但每种内容仍保留自己的信息层级。Shopify 负责商品事实和购买路径,Webflow 或内容层负责编辑结构,GSAP 只编排状态之间的时间关系。具体实现细节没有在 Awwwards 页面公开,因此这里给出的是基于公开页面元素的复用方案,而不是对项目源码的断言。7InstancedMesh 把大量贴纸压进共享材质。想复用这些案例,先问「哪些数据每帧变化、哪些数据只初始化一次」,再决定是否需要更重的 renderer。123awwwards.com
awwwards.com
awwwards.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.