vue-06-过度和动画

Posted wenbronk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue-06-过度和动画相关的知识,希望对你有一定的参考价值。

1, css过度与动画

需要使用 v-if, v-show 来进行

1), 过度类名

v-enter: 进入时触发

v-enter-active: 执行过程中

v-enter-to: 停止时进行

v-leave: 离开时开始时进行的

v-leave:active: 离开执行时

v-leave-to: 离开停止时

<div>
      <p>动画过度</p><br/>
      <button @click="showHide"> 按钮</button>

      <transition name="fade">
        <p v-show="show"> 带动画的过度被隐藏的区域</p>
      </transition>

      <p v-show="show"> 不带动画的过度被隐藏的区域</p>
    </div>

 

data() {
      return {
        show: true,
        showAdm: true,
        anim: true,
      }
    },
    methods: {
      showHide() {
        this.show = !this.show
      },

需要添加css样式

 .fade-enter-active, .fade-leave-active{
    transition: opacity 2s;
  }

  .fade-enter, .fade-leave-to {
    opacity: 0
  }

  .fade-enter-to, .fade-leave {
    opacity: 1;
  }

 

2), css动画

 <!--动画-->
    <div>
      <button @click="showHideAdm"> 动画切换</button>
      <transition name="ami">
        <p v-show="showAdm"> 嘿嘿 </p>
      </transition>
    </div>
 showHideAdm() {
        this.showAdm = !this.showAdm
      },

 

  /*动画*/
  .ami-enter-active {
    animation: bounce-in .5s ease;
  }
  /*使用in的反转动画*/
  .ami-leave-active {
    animation: bounce-in .5s reverse;
  }
  /*进入动画*/
  @keyframes bounce-in {
    0% {
      transform: scale(0);
    }
    50% {
      transform: scale(1.5);
    }
    100% {
      transform: scale(1);
    }
  }
  /*!*离开动画*!*/
  /*@keyframes bounce-out {*/
    /*0% {*/
      /*transform: scale(0);*/
    /*}*/
    /*50% {*/
      /*transform: scale(1.5);*/
    /*}*/
    /*100% {*/
      /*transform: scale(1);*/
    /*}*/
  /*}*/

3, 使用第三方动画库

引入第三方css

在index.html中引入

<!--引入第三方css-->
<link href="https://cdn.jsdelivr.net/npm/[email protected]" rel="stylesheet" type="text/css">

 

 <!--使用第三方库, 将css在index中引入-->
    <div>
      <button @click="animLib">动画库</button>
      <transition
        name="custom-classes-transition"
        enter-active-class="animated flipInX"
        leave-active-class="animated flipOutX">
        <p v-if="anim">第三方动画库使用 </p>
      </transition>
    </div>

 

animLib() {
        this.anim = !this.anim
      }

 

以上是关于vue-06-过度和动画的主要内容,如果未能解决你的问题,请参考以下文章

android MD 过度动画/共享元素,登陆实战

使用嵌套片段和动画对象

vue动画

C3当中的过度和动画

Vue3过度和动画

Vue3过度和动画