状态过渡

    • 数字和运算
    • SVG 节点的位置
    • 元素的大小和其他的 property

    这些数据要么本身就以数值形式存储,要么可以转换为数值。有了这些数值后,我们就可以结合 Vue 的响应式和组件系统,使用第三方库来实现切换元素的过渡状态。

    通过侦听器我们能监听到任何数值 property 的数值更新。可能听起来很抽象,所以让我们先来看看使用 一个例子:

    就像 Vue 的过渡组件一样,数据背后状态过渡会实时更新,这对于原型设计十分有用。当你修改一些变量,即使是一个简单的 SVG 多边形也可实现很多难以想象的效果。

    管理太多的状态过渡会很快的增加组件实例复杂性,幸好很多的动画可以提取到专用的子组件。我们来将之前的示例改写一下:

    你可以看到我们如何使用它进行数据可视化,物理效果,角色动画和交互,天空是极限。

    只要一个动画,就可以带来生命。不幸的是,当设计师创建图标、logo 和吉祥物的时候,他们交付的通常都是图片或静态的 SVG。所以,虽然 GitHub 的章鱼猫、Twitter 的小鸟以及其它许多 logo 类似于生灵,它们看上去实际上并不是活着的。

    Sarah Drasner 展示了下面这个 demo,这个 demo 结合了时间和交互相关的状态改变: