美文网首页
Vue 过渡(未)

Vue 过渡(未)

作者: 一包 | 来源:发表于2018-05-03 21:50 被阅读0次

原文

#当从 DOM 中插入、更新或移除项目时,Vue 提供多种应用过渡效果的方式。包括以下工具:

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

#当插入或删除包含在 transition 组件中的元素时,Vue 将会做以下处理:

  • 自动嗅探目标元素是否使用了 CSS 过渡或动画,如果使用,会在合适的时机添加/移除 CSS 过渡 class。

  • 如果过渡组件设置了 JavaScript 钩子函数,这些钩子函数将在合适的时机调用。

  • 如果没有检测到 CSS 过渡/动画,并且也没有设置 JavaScript 钩子函数,插入和/或删除 DOM 的操作会在下一帧中立即执行。(注意:这里的帧是指浏览器逐帧动画机制,和 Vue 的 nextTick 概念不同)

#Vue 提供了 transition 外层包裹容器组件(wrapper component),可以给下列情形中的任何元素和组件添加进入/离开(enter/leave)过渡

  • 条件渲染(使用 v-if)
  • 条件展示(使用 v-show)
  • 动态组件
  • 组件根节点

#过渡类名

  • v-enter:进入式过渡(entering transition)的开始状态。在插入元素之前添加,在插入元素之后一帧移除。

  • v-enter-active:进入式过渡的激活状态。应用于整个进入式过渡时期。在插入元素之前添加,过渡/动画(transition/animation)完成之后移除。此 class 可用于定义进入式过渡的 duration, delay 和 easing 曲线。

  • v-enter-to:仅适用于版本 2.1.8+。进入式过渡的结束状态。在插入元素之后一帧添加(同时,移除 v-enter),在过渡/动画完成之后移除。

  • v-leave:离开式过渡(leaving transition)的开始状态。在触发离开式过渡时立即添加,在一帧之后移除。

  • v-leave-active:离开式过渡的激活状态。应用于整个离开式过渡时期。在触发离开式过渡时立即添加,在过渡/动画(transition/animation)完成之后移除。此 class 可用于定义离开式过渡的 duration, delay 和 easing 曲线。

  • v-leave-to:仅适用于版本 2.1.8+。离开式过渡的结束状态。在触发离开式过渡之后一帧添加(同时,移除 v-leave),在过渡/动画完成之后移除。

单元素过渡

  1. css过渡


<div id="myDiv">
  <button @click="show = !show">点击查看变化</button>
  <transition name="fade">      //fade 名字是可以更换的
    <div v-if="show">
        请看我的变化
    </div>
  </transition>

</div>
.fade-enter-active,.fade-leave-active {
    transition: all 1s linear;
}
.fade-enter,.fade-leave-active {
   opacity: 0;
   transform:translateX(50px);
}
new Vue({
    el:"#myDiv",
    data:{
        show:true
    }
})
  1. 设置css动画(将上面的css改为如下)
.fade-enter-active{
     animation:Ado .5s ease-in;
 }
 @keyframes Ado{
       0%{transform:scale(0.5,0.5);}
       60%{transform:scale(1,1);}
       80%{transform:scale(1.5,1.5);}
       100%{transform:scale(1,1);}
 }
 .fade-leave-active{
     animation:Bdo .5s ease-in;
 }
 @keyframes Bdo{
       0%{transform:scale(1,1);}
       60%{transform:scale(1.5,1.5);}
       80%{transform:scale(1,1);}
       100%{transform:scale(0.5,0.5);}

 }
  1. 自定义过渡类 :自定义过渡类就不需要 中的name属性了。类名可以是自己随意起,也可引入第三方动画库animate.css, 但是需要在 加入一些添加类名的属性 ,如:
  • enter-class=类名
  • 在引入第三方动画库 animate.css 时 以上属性要先添加 animated 类, 在添加 动画类名,例如:
    enter-class=”animated hinge “

<div id="myDiv">
   <button @click="show = !show">点击我</button>
     <!-- 这里要加上 animated 才会有效果 (第一个是我自己写的类名,不用加,但是引入animate.css 需要在前面加animate) -->
 <transition
    leave-active-class="achange"  
    enter-active-class="animated hinge"
  >
     <p v-if="show">看我的变化</p>
 </transition>      

</div>
.achange{
   animation:Ado .5s ease-in;
 }
 @keyframes Ado{
       0%{transform:scale(0.5,0.5);}
       60%{transform:scale(1,1);}
       80%{transform:scale(1.5,1.5);}
       100%{transform:scale(1,1);}
 }
new Vue({
    el:"#myDiv",
    data:{
        show:true
    }
})

相关文章

  • Vue 过渡(未)

    原文 #当从 DOM 中插入、更新或移除项目时,Vue 提供多种应用过渡效果的方式。包括以下工具: 在 CSS 过...

  • Vue中多个元素或组件的过渡

    Vue中多个元素的过渡 Vue中多个组件的过渡(通过动态组件实现组件的过渡动画效果)image.png

  • Vue学习笔记进阶篇——列表过渡及其他

    本文为转载,原文:Vue学习笔记进阶篇——列表过渡及其他本文将介绍Vue中的列表过渡,动态过渡, 以及可复用过渡是...

  • 过渡&&动画总结

    一. vue的过渡与动画 Vue 在插入、更新或者移除 DOM 时,提供多种不同方式的应用过渡效果。过渡效果的应用...

  • Vue-(6)过渡 & 动画

    过渡 Vue在插入、更新或者移除 DOM 时,提供多种不同方式的应用过渡效果。Vue 提供了内置的过渡封装组件,该...

  • 2021-01-08

    Vue过渡和动画 Vue过渡和动画官方文档[https://cn.vuejs.org/v2/guide/trans...

  • Vue过渡动画

    vue可以在元素或组件进入和消失的时候提供过渡效果 使用过渡: vue会自动嗅探目标元素是否应用了 CSS 过渡或...

  • vue过渡

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

  • vue过渡

    常用自定义动画 外部引用animation

  • VUE 过渡

    transition过渡 transition的触发条件 条件渲染 (使用 v-if) 条件展示 (使用 v-sh...

网友评论

      本文标题:Vue 过渡(未)

      本文链接:https://www.haomeiwen.com/subject/gnjmsxtx.html