SuperAPI AI 工具集

web-animation-view-transitions

设计与创作

查看项目

更新于 10-15 19:52

技能介绍

用途:指导使用 View Transitions API 实现页面状态切换、页面间导航与共享元素动画。核心机制是浏览器截取旧状态截图、保留新状态实时视图,并在伪元素树上做动画;同文档由 document.startViewTransition() 驱动,跨文档由双方页面的 @view-transition { navigation: auto } 驱动,动画统一在 CSS 中定制。

主要能力与用法:功能检测后调用 startViewTransition,回调中执行原本就会做的 DOM 更新,不支持时直接执行更新;回调可为异步,返回 updateCallbackDone、ready、finished 三个 Promise。共享元素通过两侧匹配的 view-transition-name 让元素独立成组并移动,用 ::view-transition-group(name) 控制位移尺寸、old/new 伪元素做交叉淡入。方向感知用 transition types 配合 :active-view-transition-type() 写不同关键帧。需按点击位置计算几何时先 await transition.ready 再用 pseudoElement 选项直接动画。还覆盖主题揭示、表单步骤、标签面板、折叠面板、列表重排与减少动效分支。

限制与注意:startViewTransition 必须做支持检测,否则调用会抛错导致 DOM 更新丢失;同名 view-transition-name 会使整个过渡中止;动态名称要在 finished 后清除,否则第二次导航才暴露冲突;跨文档过渡需同源且双方都声明;必须提供 prefers-reduced-motion 分支;旧侧是截图,视频与 GIF 会冻结;过渡期间页面不可交互,导航路径动画宜控制在 300ms 内;match-element 兼容性有限。细分示例文件与 API 表资料中仅列文件名,具体内容暂未提供。