SuperAPI AI 工具集

motion

前端与建站

查看项目

更新于 10-16 00:01

技能介绍

用途:Motion 是面向 JavaScript、React 与 Vue 的动画库,用于为界面添加手势、滚动联动、弹簧物理和布局过渡等动效,常见于拖拽、悬停、列表错峰、进出场与共享元素过渡等场景。

安装:React/JS 使用 npm install motion,Vue 使用 npm install motion-v。

主要能力:核心 API 包括 animate()(弹簧或补间动画)、scroll()(滚动联动)、inView()(视口检测)、hover() 与 press()(手势)、stagger()(错峰延迟)。React 侧提供 motion 组件、AnimatePresence(退出动画)、LayoutGroup、LazyMotion、useMotionValue、useTransform、useSpring、useScroll、useAnimate 等。过渡支持 spring(stiffness、damping、mass、bounce、visualDuration)与 tween(duration、ease、delay、repeat、repeatType),并提供多种缓动函数。

使用方式:JavaScript 中从 motion 导入 animate、scroll、inView 等函数直接操作元素;React 中从 motion/react 导入 motion 组件与 hooks,用 initial、animate、exit、whileHover、whileTap、drag、layout、layoutId 等属性声明动效;Vue 中从 motion-v 导入 motion 与 AnimatePresence。AnimatePresence 需保持挂载且子元素需唯一 key。

适用场景:拖拽与手势交互、滚动进度与视口触发动画、列表错峰、布局与共享元素过渡、SVG 路径绘制、模态框进出场等。

限制与注意:完整包约 34 KB,可用 LazyMotion 优化至约 4.6 KB,useAnimate 约 2.3 KB;避免与 Tailwind 的 transition-all 同时使用以免卡顿;Next.js 中需使用客户端组件;可通过 MotionConfig 的 reducedMotion 支持无障碍;大列表建议配合虚拟化库;滚动容器与固定定位布局需使用 layoutScroll、layoutRoot 等属性。官方文档、示例库与 GitHub 链接见资料,具体收费与授权信息暂未提供。