vue3之transition动画组件

11 篇文章 0 订阅

目录

vue3之transition动画组件

    <transition name="fade">
      <div v-if="flag2" class="box">我是动画啊</div>
    </transition>
  • 动画组件
  • 就是使用 transition 组件,然后使用 name的定义 传递进入组件动画的类名等样式
  • 触发机制
    • v-if
    • v-show
    • 动态组件等
  • 过渡的类名
    • 再进入与离开这个阶段之中,涉及到6个class类名的操作(eg: 再过度组件之中 name=“fade” 设置为 fade , 那么其类名 则是以 .fade-enter-from等类似 fade开头 )
    • v-enter-from:定义进入过渡的开始状态。
    • v-enter-active:定义进入过渡时,这个过程生效的状态。定义一些曲线、延迟等。
    • v-enter-to:定义进入过渡的结束状态。
    • v-leave-from:定义离开过渡的开始状态。
    • v-leave-active:定义离开过渡时,这个过程生效的状态。
    • v-leave-to:离开过渡的结束状态。

一个简单的过度效果 淡入淡出

<template>
  <div class="main">
    <!-- 动画组件 -->
    <button @click="flag2 = !flag2">切换动画</button>
    <transition name="fade">
      <div v-if="flag2" class="box">我是动画啊</div>
    </transition>
  </div>
</template>

<script setup lang="ts">
import { ref } from 'vue'
let flag2 = ref<Boolean>(true)
</script>
<style lang="scss" scoped>
.main {
  flex: 1;
  margin: 14px;
  border: 1px solid #ccc;
  overflow: auto;
  .box {
    width: 100px;
    height: 100px;
    background: red;
  }
  // 进入前
  .fade-enter-from {
    width: 0;
    height: 0;
    opacity: 0;
  }
  // 进入的这个阶段
  .fade-enter-active {
    transition: all 2s ease;
  }
  // 进入后
  .fade-enter-to {
    width: 100px;
    height: 100px;
    opacity: 1;
  }
  // 离开前
  .fade-leave-from {
    width: 100px;
    height: 100px;
    opacity: 1;
  }
  // 进入的这个阶段
  .fade-leave-active {
    transition: all 2s ease;
  }
  // 离开后
  .fade-leave-to {
    width: 0;
    height: 0;
    opacity: 0;
  }
}
</style>
  • 效果
    在这里插入图片描述

自定义过度 动画的类名

  • enter-from-class、enter-active-class、enter-to-class、leave-from-class、leave-active-class、leave-to-class

  • 以上这6个类名 可以重新自定义类名

  • 实现的效果 入简单的fade一致

transition的生命周期

  • @before-enter => 就是动画 进入之前触发

  • @enter => 就是动画 在运行过程中的曲线等

  • @after-enter => 就是动画 执行完毕触发

  • @enter-cancelled => 动画被效果打断

  • @before-leave => 动画离开前触发

  • @leave=“leave” => 就是动画 在离开时,运行过程中的曲线等

  • @after-leave => 动画离开完毕触发

  • @leave-cancelled => 动画被效果打断

配合 gsap 的使用

  • 下载:yarn add gsap -S
  • 官网:gsap
借组gsap 实现一个很丝滑的 动画
  • 效果:就是从最开始的宽高100,丝滑得缩小为0,然后显示的时候,从0到100

transition 结合 animate动画库

animate官网

  • 下载使用
    • yarn add animate.css -S

一个简单的

  • 离开时从右侧划来,进入时从左侧划出

transition结合 gsap动画库

transition-group过度列表

  • 就是对一个列表的操作时,

    • 若是新增一个数组数据,也就是数组新增就是触发进入动画(从左侧 移到最末尾的位置,新增了一个数据)
    • 删除数组时,也就是触发离开动画(从当前最末尾位置,慢慢移除,并且删除掉改数据)

transition-group 结合 lodash 实现一个九方格 随机数

  • 实现一个81宫格的 随机数切换动画

  • lodash官网

  • 下载:

    • yarn add lodash -S
    • yarn add @type/lodash -D

数字状态的过度

  • 数字状态的过度,比如说就是一个input框之中输入了一个值为10,那么监听这个input输入的值发生变化时候,触发另外一个状态过度的数据

  • num

    • curNum 输入框监听的值
    • tweenedNumber 状态过度的值,数字的抖动值
    数字的过度效果 {{ parseInt(num.tweenedNumber).toFixed(0) }}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值