SuperAPI AI 工具集

fixing-motion-performance

前端与建站

查看项目

更新于 10-16 09:31

技能介绍

用途:审计并修复动画性能问题。适用于新增或修改 UI 动画(CSS、WAAPI、Motion、rAF、GSAP)、重构卡顿交互或过渡、实现滚动联动动效或滚动显现、为布局/滤镜/遮罩/渐变/CSS 变量做动画,以及审查使用 will-change、transform 或测量逻辑的组件。

用法:在对话中输入 /fixing-motion-performance,将规则约束应用于本次所有 UI 动画工作;输入 /fixing-motion-performance <file>,按规则审查该文件并报告违规的具体行或片段、简短原因和可落地的代码级修复。除非明确要求,不迁移动画库,规则在现有技术栈内应用。

主要规则要点:渲染分为合成(transform、opacity)、绘制(颜色、边框、渐变、遮罩、图像、滤镜)和布局(尺寸、位置、流、grid、flex);优先级从关键到低依次为:禁止反模式、选择机制、测量、滚动、绘制、图层、模糊与滤镜、View Transitions、工具边界。关键要求包括:同一帧内不交错读写布局;不在大表面持续做布局动画;不用 scrollTop、scrollY 或滚动事件驱动动画;rAF 循环必须有停止条件;不混用多个自行测量或修改布局的动画系统;默认用 transform 与 opacity;测量一次后改用 transform 或 opacity 动画;避免动画中反复读取布局;优先 FLIP 式过渡;滚动联动优先用 Scroll 或 View Timelines,可见性用 IntersectionObserver;离屏暂停动画;绘制类动画只用于小型隔离元素;不用模糊做持续动画且模糊动画保持较小(<=8px);will-change 临时且精准使用,避免过多过大提升图层;View Transitions 仅用于导航级变化;不擅自迁移或重写动画库,不在同一组件内混用动画系统风格。

常见修复:将 transition: width 改为 transition: transform 以避免布局抖动;用 animation-timeline: view() 替代滚动事件中直接根据 scrollY 设置 opacity;测量时先批量读取再写入,采用 FLIP 思路先记录 first、加类后记录 last,再用 transform 过渡回位。

限制:资料未提供具体支持的框架版本、工具链、性能基准数据或安装命令,相关事实暂未提供。审查时先执行关键规则,选择与意图相符的最低开销渲染方式,对非默认选择说明理由。