Motion 动画示例速查:从通知退场到灯箱转场

发布时间:2026/9/2 12:55:47

Motion 动画示例速查:从通知退场到灯箱转场
Motion 动画示例速查从通知退场到灯箱转场【免费下载链接】motionA modern animation library for React and JavaScript项目地址: https://gitcode.com/GitHub_Trending/mo/motion列表里删掉一行剩余的行不会补位、生硬跳了一下用户会顿住半秒。这是布局过渡的典型场景Motion面向 React 和 JavaScript 的开源动画库用 layout 追踪和共享元素转场把它解决掉仓库里也备好了可直接抄的示例。三步跑通第一个动画第 1 步装包。React 和 JavaScript 用同一个包Vue 项目用motion-vnpm install motion各平台的最小用法在 README.md 的安装区块里都有对照。第 2 步写最小动画。把div换成motion.div加一个animate属性就能动import { motion } from motion/react motion.div animate{{ x: 100 }} transition{{ duration: 1 }} /对应示例是 Animation-animate.tsx它用 state 在 0 和 100 之间来回切 x改这一个文件就能理解整条链路。第 3 步本地跑起来。所有示例挂在 Vite 示例工程里dev/react是 React 版# 在 dev/react 目录下 yarn dev起服务后逐个点开示例比读文档直观。按业务场景挑模板示例不按手势/布局这种技术词分类按你明天要做的场景去找更省事文件都在 dev/react/src/examples/。通知列表怎么加进出场删掉一条时它缩小消失后面的通知上移补位新的从底部弹入。关键是每条加layout容器套AnimatePresencemotion.li layout exit{{ opacity: 0, scale: 0.5 }} /参考 AnimatePresence-notifications-list.tsx它还带了侧滑删除弹出式 toast 变体在 dev/react/src/tests/animate-presence-pop.tsx。缩略图怎么过渡到大图点缩略图时它飞出来放大到中间背景遮罩淡入关闭时原路飞回。原理是给缩略图和大图赋同一个layoutId共享元素转场就成立了motion.div layoutId{id} /参考 Shared-layout-lightbox.tsx要交叉淡入淡出而不是直接替换看 Shared-layout-lightbox-crossfade.tsx。列表拖拽排序怎么实现拖动某一行时其他行实时让位松手后回弹归位。Reorder.Group加Reorder.Item把这套逻辑全包了Reorder.Group axisy values{items} onReorder{setItems}一维列表参考 Drag-to-reorder.tsx二维网格版是 Reorder-grid.tsx。两个组件怎么切换不闪白key 一变旧组件走完 exit、新组件同时进场中间不出现空窗。把会变的组件放进AnimatePresence切换只靠改 keyAnimatePresence motion.div key{key} exit{{ opacity: 0 }} / /AnimatePresence参考 AnimatePresence-switch.tsx单文件四十行以内适合当骨架抄。折叠面板高度怎么从 0 展开到 auto面板动画的难点在height: auto没法直接插值。示例的解法是用 variants 在height: 0和height: auto两个状态间切外层overflow: hidden兜底variants{{ open: { height: auto }, collapsed: { height: 0 } }}参考 Animation-height-auto-display-none.tsx。容易踩的坑⚠️退场动画不播放。现象是 item 从 state 里移除后直接消失没有 exit。原因是AnimatePresence里的子组件缺少稳定key或者组件根本没渲染在它内部Motion 对不上上一个还在的实例。解法是检查 map 里是否传了 key以及所有进出场的兄弟节点是否都在同一个AnimatePresence下断言方式可以参考 dev/react/src/tests/animate-presence-exit-complete-multiple.tsx。⚠️导入路径还停留在 framer-motion。现象是照网上老教程写import from framer-motion但仓库已改名 MotionREADME 里明确标注 React 入口改为motion/react。原因是包已更名旧入口只作兼容保留。解法是统一写成import { motion } from motion/react。顺带提醒examples 目录里不少旧示例比如 Animation-animate.tsx仍写着 framer-motion 的 import复制到自己项目时记得改。⚠️height: auto 的动画不符合预期。现象是想从display: none直接展开到auto高度会跳。原因是 CSS 层面 auto 不可插值示例文件头部也注明了这个方向 Currently broken。解法是避开 display 切换固定用height: 0到height: auto的两态 variants再用transitionEnd收尾测试断言可对照 dev/react/src/tests/animate-height.tsx。四周上手路线第 1 周熟悉 animate / initial / transition 三个属性跑通 Animation-animate.tsx 和 Animation-transition-tween.tsx。第 2 周把 AnimatePresence 的退出动画做熟重点看多子组件的退出时序对照 dev/react/src/tests/animate-presence-exit-complete-multiple.tsx。第 3 周学 layout 与 layoutId 共享元素转场把 Shared-layout-lightbox.tsx 的结构抄进自己的项目。第 4 周接触手势drag与底层 View 时间线 APItests/animate/ 目录下的用例覆盖了暂停、跳转时间等操作。上面是测试截图把 View 时间线暂停并跳到指定时刻后元素停在动画的中间状态这正是可寻址时间线和只能播放的 CSS 动画的区别。提问与贡献的入口报 bug 和提需求走 GitHub Issues按 CONTRIBUTING.md 的约定认领 bug 前先在 issue 下留言避免两人改同一处。新特性要先提 Feature Proposal评审过 API 再动手写代码。动手前建议翻一下 plans/ 目录那里有团队正在推进的模块规划和历史 issue 记录能少踩重复的坑。打开 dev/react/src/examples/挑一个和你下一个项目对得上的文件比如通知列表或灯箱先复制进去改配色再改动画参数。写完之后用同名的 tests 文件做对照能看出示例到底依赖哪几个属性。【免费下载链接】motionA modern animation library for React and JavaScript项目地址: https://gitcode.com/GitHub_Trending/mo/motion创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

沙特Lumina满改HSV GTS:V8后驱平台性能升级全解析

沙特Lumina满改HSV GTS:V8后驱平台性能升级全解析

2026/9/2 12:55:47

这次我们来看的并不是某个开源仓库或大模型,而是一个更“硬核”的改装项目:一台在沙特阿拉伯完成深度整备的雪佛兰 Lumina,车身上的名字是 CSV CR8,整体往 HSV GTS 的方向做“满改”。如果你对通用汽车后驱平台、大排量 V8、中大型…

yuzu在PC上跑Switch游戏:从卡带到满帧的实操路径

yuzu在PC上跑Switch游戏:从卡带到满帧的实操路径

2026/9/2 12:55:47

yuzu在PC上跑Switch游戏:从卡带到满帧的实操路径 【免费下载链接】yuzu 任天堂 Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu 镜像拖进去,三十秒后:30帧、按键全错、半个屏幕是黑的。这不是游戏的问题&#…

dotnet/skills xUnit v2升v3清单:12个关键变更点一次看懂

dotnet/skills xUnit v2升v3清单:12个关键变更点一次看懂

2026/9/2 12:55:47

dotnet/skills xUnit v2升v3清单:12个关键变更点一次看懂 【免费下载链接】skills Repository for skills to assist AI coding agents with .NET and C# 项目地址: https://gitcode.com/GitHub_Trending/skills17/skills 📦 skills17/skills 仓库…

用5分钟跑通tinygrad:能读懂的深度学习框架全拆解

用5分钟跑通tinygrad:能读懂的深度学习框架全拆解

2026/9/2 13:55:49

用5分钟跑通tinygrad:能读懂的深度学习框架全拆解 【免费下载链接】tinygrad You like pytorch? You like micrograd? You love tinygrad! ❤️ 项目地址: https://gitcode.com/GitHub_Trending/tiny/tinygrad 如果你想学深度学习,但一想到几百…

14 种扫描一次搞定:Czkawka 免费重复文件查找与磁盘清理工具上手指南

14 种扫描一次搞定:Czkawka 免费重复文件查找与磁盘清理工具上手指南

2026/9/2 13:55:49

14 种扫描一次搞定:Czkawka 免费重复文件查找与磁盘清理工具上手指南 【免费下载链接】czkawka Multi functional app to find duplicates, empty folders, similar images etc. 项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka Czkawka 是一款免…

go-zero 服务治理实战:熔断、限流与降级,3 个拦截器挡住 90% 的雪崩

go-zero 服务治理实战:熔断、限流与降级,3 个拦截器挡住 90% 的雪崩

2026/9/2 13:55:49

go-zero 服务治理实战:熔断、限流与降级,3 个拦截器挡住 90% 的雪崩 【免费下载链接】go-zero A cloud-native Go microservices framework with cli tool for productivity. 项目地址: https://gitcode.com/GitHub_Trending/go/go-zero 上游接口…

从源码到二进制:编译器优化、动态链接与TOCTOU漏洞如何改变程序行为

从源码到二进制:编译器优化、动态链接与TOCTOU漏洞如何改变程序行为

2026/9/2 13:55:49

在开发过程中,你是否遇到过这样的困惑:明明自己编写的代码逻辑清晰,但编译后生成的可执行程序(binary)运行起来,却产生了意料之外的结果?或者,在调试一个看似简单的程序时&#xff0…

开源DocSift:基于RAG的长文档智能检索方案,优化LLM上下文成本

开源DocSift:基于RAG的长文档智能检索方案,优化LLM上下文成本

2026/9/2 13:55:49

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

大厂UI/UX作品集制作思路:从项目筛选到面试表达

大厂UI/UX作品集制作思路:从项目筛选到面试表达

2026/9/2 13:45:49

这次我们来看大厂 UI/UX 作品集的常见思路。很多人做作品集,第一步就打开 Figma 开始排版,做到一半才发现逻辑不顺、项目太水、讲不清楚。问题不是不够努力,而是没有先解决三个核心问题:给谁看、讲什么、怎么证明。这篇加更主要回…

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

2026/9/2 10:08:07

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

2026/9/2 12:11:52

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

2026/9/1 23:49:08

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

单片机毕业设计-基于单片机与蓝牙通讯的输液状态监测终端设计与开发 基于 STM32 或 51 单片机的液位‑滴速‑温度多参数输液监护装置设计(024005)

单片机毕业设计-基于单片机与蓝牙通讯的输液状态监测终端设计与开发 基于 STM32 或 51 单片机的液位‑滴速‑温度多参数输液监护装置设计(024005)

2026/9/2 0:04:59

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

DeepSeek字幕翻译实战:从API调用到批量SRT转中文的完整方案

DeepSeek字幕翻译实战:从API调用到批量SRT转中文的完整方案

2026/9/2 0:04:59

这次我们来看一个很实用的 DeepSeek 落地场景:用 DeepSeek 把英文视频字幕自动翻译成中文。具体案例是《恶魔君》1989 年第 28 集的英转中字幕任务,标题写得很直白,但背后其实是一整套可以复用的技术流程:字幕解析、模型调用、批量…

用Python搭建搞笑语音助手:从语音识别到语音合成全教程

用Python搭建搞笑语音助手:从语音识别到语音合成全教程

2026/9/2 0:04:59

当你家里摆着一台天猫精灵,却总希望语音助手偶尔“不正经”一点,不用官方腔回答问题,而是张口就接几句搞笑段子,会是什么体验?我最近动手验证了一下这个想法——没有去改装任何市面上现有的智能音箱,而是直…

远程协作的工作台整理

远程协作的工作台整理

2026/9/2 6:21:32

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/2 6:21:32

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/2 2:45:06

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…