vue 组件transition

 

 

<style>
.fade-enter-active, .fade-leave-active {
  transition: opacity .5s;
}
.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
  opacity: 0;
}
</style>

<div id="demo">
  <button v-on:click="show = !show">
    Toggle
  </button>
  <transition name="fade">
    <p v-if="show">hello</p>
  </transition>
</div>

<script>
new Vue({
  el: '#demo',
  data: {
    show: true
  }
})
</script>

 

 

 

 

 

 

      设置不同动画皆可以设置name属性进行区分。

 

 

 

 

 可以使用钩子函数来实现半场动画。动画钩子函数的第一个参数:el,表示 要执行动画的那个DOM元素,是个原生的 JS DOM对象

 大家可以认为 , el 是通过 document.getElementById('') 方式获取到的原生JS DOM对象
 beforeEnter 表示动画入场之前,此时,动画尚未开始,可以 在 beforeEnter 中,设置元素开始动画之前的起始样式
 enter 表示动画 开始之后的样式
动画完成之后,会调用 afterEnter
 

引入animate.css结合transition

    <transition 
    enter-active-class="bounceIn" 
    leave-active-class="bounceOut" 
    :duration="{ enter: 200, leave: 400 }">
      <h3 v-if="flag" class="animated">这是一个H3</h3>     <!--加了基本类animated-->
    </transition> 

设置进入过程和离开过程的类,enter-active-class="bounceIn" ,leave-active-class="bounceOut" 。

 使用 :duration="毫秒值" 来统一设置 入场 和 离场 时候的动画时长 

bounceIn和bounceOut为animate.css中的类,作用的元素上要加一个基本类animated才能生效。

在实现列表过渡的时候,如果需要过渡的元素,是通过 v-for 循环渲染出来的,不能使用 transition 包裹,需要使用 transitionGroup。
 
 
参考来源于官方文档:https://cn.vuejs.org/v2/guide/transitions.html
posted @ 2021-03-08 10:54  孙淡策  阅读(207)  评论(0)    收藏  举报