快捷搜索:  汽车  科技

vuejs最详细教程第79讲技术:vue.js深入篇二过渡效果下篇

vuejs最详细教程第79讲技术:vue.js深入篇二过渡效果下篇FLIP 动画不仅可以实现单列过渡,多维网格也同样可以过渡:需要注意的是使用 FLIP 过渡的元素不能设置为 display: inline 。作为替代方案,可以设置为 display: inline-block 或者放置于 flex 中。这个看起来很神奇,内部的实现,Vue 使用了一个叫 FLIP 简单的动画队列使用 transforms 将元素从之前的位置平滑过渡新的位置。我们将之前实现的例子和这个技术结合,使我们列表的一切变动都会有动画过渡。

vuejs最详细教程第79讲技术:vue.js深入篇二过渡效果下篇(1)

vuejs最详细教程第79讲技术:vue.js深入篇二过渡效果下篇(2)

列表的进入/离开过渡

现在让我们由一个简单的例子深入,进入和离开的过渡使用之前一样的 CSS 类名。

vuejs最详细教程第79讲技术:vue.js深入篇二过渡效果下篇(3)

这个例子有个问题,当添加和移除元素的时候,周围的元素会瞬间移动到他们的新布局的位置,而不是平滑的过渡,我们下面会解决这个问题。

列表的排序过渡

<transition-group> 组件还有一个特殊之处。不仅可以进入和离开动画,还可以改变定位。要使用这个新功能只需了解新增的 v-move 特性,它会在元素的改变定位的过程中应用。像之前的类名一样,可以通过 name 属性来自定义前缀,也可以通过 move-class 属性手动设置。

v-move 对于设置过渡的切换时机和过渡曲线非常有用,你会看到如下的例子:

vuejs最详细教程第79讲技术:vue.js深入篇二过渡效果下篇(4)

这个看起来很神奇,内部的实现,Vue 使用了一个叫 FLIP 简单的动画队列

使用 transforms 将元素从之前的位置平滑过渡新的位置。

我们将之前实现的例子和这个技术结合,使我们列表的一切变动都会有动画过渡。

vuejs最详细教程第79讲技术:vue.js深入篇二过渡效果下篇(5)

需要注意的是使用 FLIP 过渡的元素不能设置为 display: inline 。作为替代方案,可以设置为 display: inline-block 或者放置于 flex 中。

FLIP 动画不仅可以实现单列过渡,多维网格也同样可以过渡:

vuejs最详细教程第79讲技术:vue.js深入篇二过渡效果下篇(6)

vuejs最详细教程第79讲技术:vue.js深入篇二过渡效果下篇(7)

vuejs最详细教程第79讲技术:vue.js深入篇二过渡效果下篇(8)

列表的交错过渡

通过 data 属性与 JavaScript 通信 ,就可以实现列表的交错过渡:

vuejs最详细教程第79讲技术:vue.js深入篇二过渡效果下篇(9)

vuejs最详细教程第79讲技术:vue.js深入篇二过渡效果下篇(10)

可复用的过渡

过渡可以通过 Vue 的组件系统实现复用。要创建一个可复用过渡组件,你需要做的就是将 <transition> 或者 <transition-group> 作为根组件,然后将任何子组件放置在其中就可以了。

使用 template 的简单例子:

vuejs最详细教程第79讲技术:vue.js深入篇二过渡效果下篇(11)

动态过渡

在 Vue 中即使是过渡也是数据驱动的!动态过渡最基本的例子是通过 name 特性来绑定动态值。

vuejs最详细教程第79讲技术:vue.js深入篇二过渡效果下篇(12)

当你想用 Vue 的过渡系统来定义的 CSS 过渡/动画 在不同过渡间切换会非常有用。

所有的过渡特性都是动态绑定。它不仅是简单的特性,通过事件的钩子函数方法,可以在获取到相应上下文数据。这意味着,可以根据组件的状态通过 JavaScript 过渡设置不同的过渡效果。

vuejs最详细教程第79讲技术:vue.js深入篇二过渡效果下篇(13)

vuejs最详细教程第79讲技术:vue.js深入篇二过渡效果下篇(14)

最后,创建动态过渡的最终方案是组件通过接受 props 来动态修改之前的过渡。一句老话,唯一的限制是你的想象力。

猜您喜欢: