如何在路由更改的两个不同视图中定义的两个元素之间进行转换,通常称为跨多个页面布局的页面元素的“共享转换”或“类似本机的转换”?
这里有些例子 :
- airbnb/native-navigation (React)中的共享元素转换
- 动画锚定(角度)
常见的解决方案是通过在页面流之外使用不同的元素或通过跨布局覆盖元素并使用考虑到覆盖空间的自愿空白和绝对定位来假装这种效果,以给人一种元素内置在自然页面流中的印象。参见例如Native-Like Animations for Page Transitions on the Web(参见评论)或snipcart/vue-blog-demo。
共享元素转换将在具有不同页面布局的不同视图中分别定义的两个元素之间创建关系,并在它们之间转换,可能以一种 FLIP 方式。