SuperAPI AI 工具集

react-animations

前端与建站

查看项目

更新于 10-16 05:46

技能介绍

用途:在 React 应用中实现动画、过渡与动效时使用,覆盖入场退场、共享元素过渡、物理弹簧、复杂时间线、滚动触发、手势拖拽、SVG 路径动画等场景。

主要能力:提供库选型决策表——入场退场与共享元素用 Framer Motion(AnimatePresence、layoutId),物理效果用 Framer Motion 或 React Spring,复杂时间线用 GSAP,滚动触发用 whileInView/useScroll,简单悬停聚焦用 CSS/Tailwind,拖拽用 Framer Motion 手势。核心原则:动画应声明式描述目标状态;简单场景用 CSS,复杂才引入 JS;只动画 transform 与 opacity,避免 width、height、top、left 引发重排;AnimatePresence 包裹条件渲染以保留退场动画;用 variants 组织协调动画;用 useMotionValue 而非 useState 驱动动画值。

使用方式:安装命令为 bun add framer-motion,零配置,直接导入 motion.div 使用。全局无障碍可在应用根部包裹 MotionConfig reducedMotion="user",或用 useReducedMotion 做组件级控制。生产环境可用 LazyMotion + m 配合 domAnimation 做代码分割,需要拖拽或布局动画时改用 domMax。命令式动画使用 useAnimate(v11+),替代已废弃的 useAnimation。

适用场景:页面与模态过渡、列表交错入场、视差滚动、卡片展开共享元素、游戏 UI(血条、伤害数字、翻牌、屏幕震动、菜单滑入、物品掉落)等。

限制与注意:不要同时使用 CSS transition 与 Framer Motion;避免在渲染中创建 motion value;layout 属性在深层 DOM 上开销大,应限定最小子树;过度动画会造成感官负担;始终处理减少动态偏好。资料未提供具体收费、价格与平台信息。