过渡 & 动画

Vue 在插入、更新或者移除 DOM 时,提供多种不同方式的应用过渡效果。包括以下工具:

  • 在 CSS 过渡和动画中自动应用 class
  • 在过渡钩子函数中使用 JavaScript 直接操作 DOM
  • 可以配合使用第三方 CSS 动画库,如 Animate.css
  • 可以配合使用第三方 JavaScript 动画库,如 Velocity.js

过渡类

如果你使用一个没有名字的 <transition>,则 'v-' 是这些类名的默认前缀。

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

自定义过渡类名

便于引入第三方动画库,自定义类名优先级高于普通的类名

<link href="https://cdn.jsdelivr.net/npm/animate.css@3.5.1" rel="stylesheet" type="text/css">
<div id="demo">
<button v-on:click="show = !show">Toggle</button>
<transition name="fade" enter-active-class="animated tada" leave-active-class="animated bounceOutRight">
<p v-if="show">hello</p>
</transition>
</div>

JS钩子函数

  • before-enter:function(el){ ... },
  • enter:function(el , done){ ... },
  • after-enter:function(el){ ... },
  • enter-cancelled:function(el){ ... },
  • before-leave:function(el){ ... },
  • leave:function(el , done){ ... },
  • after-leave:function(el){ ... },
  • leave-cancelled:function(el)

当只用 JavaScript 过渡的时候,在 enterleave 中必须使用 done 进行回调。否则,它们将被同步调用,过渡会立即完成。

推荐对于仅使用 JavaScript 过渡的元素添加 v-bind:css="false",Vue 会跳过 CSS 的检测。

<transition>

  • name : 过渡名
  • enter-class,enter-active-class,enter-to-class,leave-class,leave-active-class,leave-active-class :指定过渡阶段类名
  • duration :[ms | {enter: ms, leave: ms}]
  • mode: 过渡模式
    • in-out:新元素先进行过渡,完成之后当前元素过渡离开。
    • out-in:当前元素先进行过渡,完成之后新元素过渡进入。

<transition-group>

  • 不同于 <transition>,它会以一个真实元素呈现:默认为一个 <span>。可以借助tag改成其他标签。
  • 过渡模式不可用,因为我们不再相互切换特有的元素。即mode不适用。
  • 内部元素总是需要提供唯一的 key attribute 值。
  • CSS 过渡的类将会应用在内部的元素中,而不是这个组/容器本身。
  • 不仅可以进入和离开动画,还可以改变定位。
  • 属性
    • name:过渡名
    • tag:设置标签
    • enter-class,enter-active-class,enter-to-class,leave-class,leave-active-class,leave-active-class :指定过渡阶段类名
    • move-class:在元素的改变定位中应用

最新文章

  1. Servlet页面登录的数据库验证程序(二)
  2. jetty服务器启动方法总结【备用】
  3. 关于debug时的一些操作
  4. Win7\xp添加虚拟网Microsoft Loopback Adapter
  5. python &amp; pandas链接mysql数据库
  6. MDIO/MDC(SMI)接口
  7. 文件I/O(不带缓冲)之read函数
  8. android spinner 每行字体颜色都变化
  9. NOIP2010-普及组初赛C语言解析
  10. LeetCode OJ 61. Rotate List
  11. MySQL--REPEATABLE-READ隔离级别下读取到的“重复数据”
  12. 1.promethues监控融入k8s
  13. CSS3 常用属性
  14. Beautifulsoup官方文档
  15. 从零开始搭建自己的VueJS2.0+ElementUI单页面网站(一、环境搭建)
  16. redis的常用命令01
  17. 【转】你必须知道的EF知识和经验
  18. AngularJS ngTemplate寄宿方式 模板缓存 $templateCache
  19. ASYNC_IO_COMPLETION
  20. jQuery实现倒计时效果-杨秀徐

热门文章

  1. Linux利用crontab执行定时任务
  2. Nexus私有maven库部署和使用
  3. ChatGPT/InstructGPT详解
  4. 通过Docker启动Solace,并在Spring Boot通过JMS整合Solace
  5. mysql 列约束
  6. 【原创】项目六 Load Of The Root
  7. MyBatis使用四(查询详解)
  8. PHP判断访问来源是PC端还是移动端
  9. Nacos注册中心 (介绍与配置)
  10. elasticsearch-head-master安装