加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Vue过渡与动画介绍

发布时间:2023-03-31 14:25:54 所属栏目:教程 来源:
导读:Vue 在插入、更新或者移除 DOM 时,提供多种不同方式的应用过渡效果。
包括以下工具:
1、在 CSS 过渡和动画中自动应用 class;
2、配合使用第三方 CSS 动画库,如 Animate.css;
3、在过渡钩子函数中使用 JavaS
Vue 在插入、更新或者移除 DOM 时,提供多种不同方式的应用过渡效果。
包括以下工具:
1、在 CSS 过渡和动画中自动应用 class;
2、配合使用第三方 CSS 动画库,如 Animate.css;
3、在过渡钩子函数中使用 JavaScript 直接操作 DOM;
4、配合使用第三方 JavaScript 动画库,如 VeLocity.js。

语法格式:
使用 transition 组件包裹需要使用过渡效果的 DOM 元素。例如:

    <transition name = "transition-name">
      <div>...</div>
    </transition>

接下来让我们先看一个淡入淡出效果的实现代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <Meta charset="UTF-8">
  <Meta name="viewport" content="width=device-width, initial-scale=1.0">
  <Meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <style>
    .fade-enter-active, .fade-leave-active {
      transition: opacity s
    }
    .fade-enter, .fade-leave-to {
      opacity: 
    }
  </style>
</head>
<body>
  <div id = "app">
    <button v-on:click = "show = !show">{{ show ? '隐藏' : '显示'}}</button>
    <transition name="fade">
      <p v-show = "show" >hello !</p>
    </transition>
  </div>
</body>
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script type = "text/javascript">
  var vm = new Vue({
    el: '#app',
    data: {
        show:true
    },
    methods : {
    }
  });
</script>
</html>
代码解释:

HTML 代码第 3-5 行,我们使用 transition 组件包裹 <p> 标签,transition 组件指定 name 为 fade,通过 指令 v-show 控制 <p> 标签的显示和隐藏;
HTML 代码第 2 行,定义按钮 button,点击修改 show 的值来控制标签 <p> 的显示隐藏;
CSS 中我们定义了 4 个样式;
JS 代码第 6 行,定义数据 show,默认值为 true。
那么,transition 组件是如何做到这样的过渡效果的呢?

我想,同学们肯定猜想到当元素切换状态的时候,我们定义的样式会作用于标签元素 <p>。那么,到底是不是这样呢?

打开控制台,检索到 <p> 标签上,我们可以清晰地看到:

当元素隐藏的时候,样式 fade-leave-active 和 fade-leave-to 会被添加到元素 <p> 上;
当元素显示的时候,样式 fade-enter-active 和 fade-enter-to 会被添加到元素 <p> 上。
实际上 Vue 在元素显示与隐藏的过渡中,提供了 6 个 class 来切换:

v-enter:定义进入过渡的开始状态。在元素被插入之前生效,在元素被插入之后的下一帧移除;
v-enter-active:定义进入过渡生效时的状态。在整个进入过渡的阶段中应用,在元素被插入之前生效,在过渡 / 动画完成之后移除。这个类可以被用来定义进入过渡的过程时间,延迟和曲线函数;
v-enter-to: 定义进入过渡的结束状态。在元素被插入之后下一帧生效 (与此同时 v-enter 被移除),在过渡 / 动画完成之后移除。
v-leave: 定义离开过渡的开始状态。在离开过渡被触发时立刻生效,下一帧被移除;
v-leave-active:定义离开过渡生效时的状态。在整个离开过渡的阶段中应用,在离开过渡被触发时立刻生效,在过渡 / 动画完成之后移除。这个类可以被用来定义离开过渡的过程时间,延迟和曲线函数;
v-leave-to: 定义离开过渡的结束状态。在离开过渡被触发之后下一帧生效 (与此同时 v-leave 被删除),在过渡 / 动画完成之后移除。

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章