SuperAPI AI 工具集

framer-motion

前端与建站

查看项目

更新于 10-16 00:29

技能介绍

Framer Motion 是面向 React 的生产级动画库,提供声明式动画与手势能力。安装命令为:npm install framer-motion。

用途与主要能力:通过 motion 组件为任意 HTML 元素或自定义组件添加动画,支持 initial、animate、exit 属性、关键帧、变体(variants)与编排(staggerChildren、delayChildren),可设置 duration、delay、ease 以及 spring、tween 等过渡类型,并支持逐属性过渡配置。

手势与交互:提供 whileHover、whileTap、onTap、onTapStart、onTapCancel、whileFocus、drag、dragConstraints、dragElastic、dragMomentum、whileDrag 及 onDragStart、onDrag、onDragEnd 等,可实现拖拽与点击反馈。还可通过 AnimatePresence 处理组件挂载与卸载时的入场、离场动画。

布局与滚动:使用 layout、layoutId 与 LayoutGroup 实现布局动画和共享布局;使用 useScroll、useTransform、scrollYProgress、useInView、whileInView 实现滚动联动、进度条与进入视口动画。动画控制可使用 useAnimation,通过 controls.start、controls.stop、controls.set 手动控制播放。还支持 SVG 动画,如 pathLength 路径绘制与圆形进度。

使用方式:通常在 React(含 Next.js 等框架)组件中导入 motion 与相关 Hook,用 motion.div 等元素包裹内容并设置动画属性;页面过渡可结合 AnimatePresence 与路由路径 key。

适用场景:React 界面过渡、模态框、列表错峰出现、标签下划线、视差头部、进度条、进入视口淡入、SVG 绘制动画与页面切换。

限制与注意事项:资料指出应避免动画 width、height 等触发布局的属性,优先使用 x、scale、opacity 等 transform 属性;列表需提供唯一 key;离场动画需包在 AnimatePresence 内;可通过 useReducedMotion 尊重减少动态偏好;will-change 应谨慎使用。价格、授权、平台兼容范围等未在资料中说明,暂未提供。