用途:在已有图片上叠加跟随光标的流体扭曲效果,使用 Shaders 库的 ImageTexture 与 CursorRipples 组件,适合首屏主图等场景。
主要能力:通过一个 Shader 画布渲染源图,CursorRipples 置于 ImageTexture 之后对图像做后处理,由库自行跟踪光标,无需自定义聚光坐标、径向遮罩或指针动画循环。
安装与用法:npm install shaders,从 shaders/react、shaders/vue、shaders/svelte 或 shaders/solid 导入。基础组合为 <Shader toneMapping="aces"><ImageTexture url={imageUrl} objectFit="cover" /><CursorRipples decay={7.3} radius={0.6} /></Shader>。React 可参考 assets/react/cursor-ripple-shader.tsx 与 cursor-ripple-media.css。Vite 项目不要把 shaders 加入 optimizeDeps.exclude。
降级与可访问性:仅在浏览器支持 WebGPU 且未开启减少动态效果时挂载着色器,用 lazy 动态导入;画布下方保留真实图片作为加载与 WebGPU 降级,着色器就绪前不隐藏降级图。画布设 pointer-events: none 与 aria-hidden="true",交互控件置于更高层。
限制:需移除旧的聚光/揭示实现,避免坐标漂移与额外 GPU 开销;商业发布前需自行确认 Shaders 许可条款。资料未提供具体价格、平台支持范围与效果保证。