欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Vue3实现过度动画效果

程序员文章站 2022-05-02 20:06:04
...

使用内置transition组件完成动画

<template>
  <div>
    <button @click="isShow = !isShow">
      显示/隐藏
    </button>
    <transition name="name">
      <h2 v-if="isShow">
        动画展示的内容
      </h2>
    </transition>
  </div>
</template>

<script>
export default{
  data() {
    return {
      isShow: true
      }
    }
  }
</script>

<style scoped>
  // name可以根据自己定义来改变css类的前缀名,  默认v-enter-from
  .name-enter-from,
  .name-leave-to {
    opacity: 0;
  }
  .name-enter-to,
  .name-leave-from {
    opacity: 1;
  }
  .name-enter-active,
  .name-leave-active {
     // transiton: 过度效果css属性名称 过度时间 过度速度曲线 何时开始    
    transition: opacity 2s ease;
  }
  
  // 执行动画效果
  .name-enter-active{
    animation: bounce 1s ease;
  }
  .name-leave-active{
    animation: bounce 1s ease reverse;
  } 
  
  @keyframes bounce{
    0% {
      transform: scale(0);
    }
    50% {
      transform: scale(2);
    }
    100 {
      transform: scale(1);
    }
  }
</style>

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