动画

收藏755

阅读14073

更新时间2025-08-22

组件

像我们在上面两个示例中所做的那样,使用纯 CSS 过渡和动画没有任何问题。

但幸运的是,Vue 为我们提供了内置的 组件,如果我们想要在使用 v-ifv-show 从应用程序中删除或添加元素时对其进行动画处理,因为用纯 CSS 动画很难做到这一点。

首先让我们创建一个应用程序,其中按钮添加或删除

标签:

示例

App.vue:






运行示例 »

现在让我们将 组件包裹在

标签周围,看看如何以动画方式删除

标签。

当我们使用 组件时,我们会自动获得六个不同的 CSS 类,我们可以使用它们在添加或删除元素时设置动画。

在下面的示例中,我们将使用自动可用的类 v-leave-fromv-leave-to 在删除

标签时制作淡出动画:

示例

App.vue:






运行示例 »

六个

当我们使用 组件时,有六个类自动可供我们使用。

由于 组件内的元素是 added,我们可以使用前三个类来为该过渡设置动画:

  1. v-enter-from
  2. v-enter-active
  3. v-enter-to

由于元素在 组件内删除,我们可以使用接下来的三个类 :

  1. v-leave-from
  2. v-leave-active
  3. v-leave-to

注意: 组件的根级别上只能有一个元素。

现在,让我们使用其中的四个类,以便在添加

标签和删除它时都可以制作动画。

示例

App.vue:






运行示例 »

我们还可以使用 v-enter-activev-leave-active 在元素添加期间删除期间设置样式或动画:

示例

App.vue:






运行示例 »

Transition 'name' 属性

如果您有多个 组件,但您希望至少其中一个 组件具有不同的动画,则需要为 组件使用不同的名称来区分它们。

我们可以使用 name 属性选择 组件的名称,这也会更改过渡类的名称,以便我们可以为该组件设置不同的 CSS 动画规则。


如果将过渡 name 属性值设置为 'swirl',自动可用的类现在将以 'swirl-' 开头,而不是 'v-':

  1. swirl-enter-from
  2. swirl-enter-active
  3. swirl-enter-to
  4. swirl-leave-from
  5. swirl-leave-active
  6. swirl-leave-to

在下面的示例中,我们使用 name 属性为 组件提供不同的动画。 一个 组件没有指定名称,因此使用自动生成的以"v-"开头的 CSS 类来指定动画。 另一个 组件被命名为"swirl",以便可以使用自动生成的以"swirl-"开头的 CSS 类为其指定动画规则。

示例

App.vue:







运行示例 »

JavaScript 过渡钩子

刚才提到的每个 Transition 类都对应一个事件,我们可以钩子该事件来运行一些 JavaScript 代码。

Transition 过渡类 JavaScript 事件
v-enter-from before-enter
v-enter-active enter
v-enter-to after-enter enter-cancelled
v-leave-from before-leave
v-leave-active leave
v-leave-to after-leave leave-cancelled (v-show only)

当下面的示例中发生 after-enter 事件时,会运行一个显示红色

元素的方法。

示例

App.vue:






运行示例 »

可以使用下例中的"Toggle"按钮来中断

元素的enter过渡阶段,从而触发enter-cancelled事件:

示例

App.vue:






运行示例 »

"appear" 属性

如果我们想要在页面加载时为某个元素添加动画效果,则需要在 组件上使用 appear 属性。


  ...

在此示例中,appear 属性在页面首次加载时启动动画:

示例

App.vue:





运行示例 »

元素之间的过渡

组件也可以用来在多个元素之间切换,只要我们使用 确保一次只显示一个元素:

示例

App.vue:






运行示例 »

mode="out-in"

在上面的示例中,在删除上一张图像之前添加下一张图像。

我们在 组件上使用 mode="out-in" 属性和属性值,以便在添加下一个元素之前完成元素的删除。

示例

除了 mode="out-in" 之外,此示例还使用计算值"imgActive",而不是我们在上一个示例中使用的"newImg"方法。

App.vue:






运行示例 »

使用动态组件进行过渡

我们还可以使用 组件来实现动态组件之间的切换动画:

示例

App.vue:






运行示例 »

Vue 练习

通过练习测试自己

练习题:

过渡组件自动为我们提供 6 个不同的 CSS 类,我们可以使用它们来为元素设置动画。

填充空白,以便当元素变得可见时,以正确的顺序完成 3 个第一类名称:

  1. v-enter-
  2. v-enter-
  3. v-enter-

相关

视频

RELATED VIDEOS

更多

免费

Web前端开发极速入门
初级 Web前端开发极速入门

219920次学习

收藏

免费

前端入门_HTML5
初级 前端入门_HTML5

616946次学习

收藏

免费

30分钟学会网站布局
初级 30分钟学会网站布局

238440次学习

收藏

免费

CSS视频教程-玉女心经版
初级 CSS视频教程-玉女心经版

393054次学习

收藏

免费

独孤九贱(1)_HTML5视频教程

免费

独孤九贱(6)_jQuery视频教程

免费

独孤九贱(7)_Bootstrap视频教程

免费

独孤九贱(2)_CSS视频教程
初级 独孤九贱(2)_CSS视频教程

229605次学习

收藏

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

71万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号