详解 Vue 过渡 transition 动画 animation 并结合第三方库 animation.css 和 gsap

news2025/1/16 11:05:07

transition   vue过渡组件

标签自带类名

触发时机默认类名

自定义类名

<transition name="xxx">

自定义行内式类名 方便结合第三方库

transition 钩子 接收参数el

enter 和leave 第二个参数 done 可以 决定 

after-enter  after-leave

的 周期内的执行时机

v-if进入进入进入进入
v-show

v-enter-from

v-enter-active

v-enter-to

xxx-enter-from

xxx-enter-active

xxx-enter-to

enter-from-class

enter-active-class

enter-to-class 

@before-enter="beforeEnter"
@enter="enter"
@after-enter="afterEnter"
@enter-cancelled="enterCancelled"

<component :is="xxx" >离开

离开

离开离开
标签元素

v-leave-from

v-leave-active

v-leave-to

xxx-leave-from

xxx-leave-active

xxx-leave-to

leave-class

leave-active-class

leave-to-class

@before-leave="beforeLeave"
@leave="leave"
@after-leave="afterLeave"
@leave-cancelled="leaveCancelled"

在 xxx-enter-active    xxx-leave-active  时可以做 一些过度属性

.slide-leave-from {
  width: 200px;
  height: 200px;
}
.slide-leave-active {
  transition: all 1s;
  animation: bounce-in 0.5s reverse;
}
.slide-leave-to {
  width: 0;
  height: 0;
}

 使用自定义类名后  enter-from-class="from"  enter-to-class = "to"

.from {
  width: 0;
  height: 0;
}
.slide-enter-active {
  transition: all 1s;
  animation: bounce-in 0.5s;
}
.to {
  width: 200px;
  height: 200px;
}

代码

<template>
  <div>
    <el-button @click="boo = !boo">toggle</el-button>
     <Transition 
     
     v-for="(item,index) in data" :key="index"
     :enter-active-class="item.Inclass"
     :leave-active-class="item.Outclass">
       <h1 v-if="boo" >{{ item.des }}</h1>
     </Transition>
  </div>
</template>
<script lang="ts" setup>
import { ref,onMounted,reactive } from "vue";
import "animate.css";
type data = {
    des:string,
    Inclass:string,
    Outclass:string
}
let data = reactive<data[]>([
    {
        des:'我是第一条数据',
        Inclass:'animate__animated animate__fadeInLeftBig',
        Outclass:'animate__animated animate__fadeOutLeftBig'
    },
    {
        des:'我是第二条数据',
        Inclass:'animate__animated animate__fadeInLeft',
        Outclass:'animate__animated animate__fadeOutLeft'
    },
    {
        des:'我是第三条数据',
        Inclass:'animate__animated animate__fadeInUpBig',
        Outclass:'animate__animated animate__fadeOutUpBig'
    },
    {
        des:'我是第四条数据',
        Inclass:'animate__animated animate__flipInX',
        Outclass:'animate__animated animate__flipOutX'
    },
    {
        des:'我是第五条数据',
        Inclass:'animate__animated animate__zoomInDown',
        Outclass:'animate__animated animate__zoomOutDown'
    },
    {
        des:'我是第六条数据',
        Inclass:'animate__animated animate__backInLeft',
        Outclass:'animate__animated animate__backOutLeft'
    },

])
let boo = ref<boolean>(false);
</script>
<style scoped lang="scss">
.box {
  width: 200px;
  height: 200px;
  background-color: #ccc;
}
.from {
  width: 0;
  height: 0;
}
.slide-enter-active {
  transition: all 1s;
  animation: bounce-in 0.5s;
}
.to {
  width: 200px;
  height: 200px;
}

/**
  离开
   */
.slide-leave-from {
  width: 200px;
  height: 200px;
}
.slide-leave-active {
  transition: all 1s;
  animation: bounce-in 0.5s reverse;
}
.slide-leave-to {
  width: 0;
  height: 0;
}

@keyframes bounce-in {
  0% {
    transform: scale(0);
  }
  50% {
    transform: scale(1.5);
  }
  100% {
    transform: scale(1);
  }
}
.font{
    margin: auto;
    width: 300px;
}
</style>

使用动画库 animate.css

animate.css 官网

npm install animate.css --save
import "animate.css";  //组件中引入

使用时 加固定前缀 animate__animated  后面的类名按官网需求添加

<h1 class="animate__animated animate__bounce">An animated element</h1>

效果

 

学习 gsap 动画库 ☆      有助于学习 three.js 

greensock 绿袜官网

 

 结合  transition 生命周期 和 gsap

let beforeEnter = (el) => {
  gsap.set(el,{
   background:'#ccc'
  })
};
let enter = (el,done) => {
    gsap.set(el,{
        backgroundColor:'pink'
    })
};
let afterEnter = () => {
  console.log(555);
};
let leave = (el,done)=>{
    gsap.set(el,{
        backgroundColor:'#ccc'
    })

}


 <Transition
      v-on:before-enter="beforeEnter"
      v-on:enter="enter"
      v-on:after-enter="afterEnter"
      v-for="(item, index) in data"
      :key="index"
      :enter-active-class="item.Inclass"
      :leave-active-class="item.Outclass"
      @leave="leave"
    >

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/117345.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YonBuilder移动开发平台 AVM框架 封装虚拟数字键盘组件

AVM&#xff08;Application-View-Model&#xff09;前端组件化开发模式基于标准Web Components组件化思想&#xff0c;提供包含虚拟DOM和Runtime的编程框架avm.js以及多端统一编译工具&#xff0c;完全兼容Web Components标准&#xff0c;同时兼容Vue和React语法糖编写代码&am…

Codeforces Round #697 (Div. 3) E. Advertising Agency

翻译&#xff1a; 玛莎在一家广告公司工作。为了推广新品牌&#xff0c;她想和一些博主签约。玛莎总共有&#x1d45b;个不同的博主。编号为&#x1d456;的博主拥有&#x1d44e;&#x1d456;名粉丝。 由于玛莎的预算有限&#xff0c;她只能与&#x1d458;不同的博主签约。…

LeetCode动态规划—跳跃游戏从跳到头到跳最少下跳到头(45、55)

跳跃游戏跳跃游戏跳跃游戏Ⅱ跳跃游戏 一个下标对应的值为3&#xff0c;那证明这个位置可以跳到前后3个位置的下标处。&#xff08;3均可达&#xff09; 如果依次遍历完这个数组&#xff0c;有下标在跳跃过程中最远位置仍然不可达&#xff0c;即证明无法到达最后一个位置。 可以…

js实现九宫格抽奖功能

分享一下js的九宫格抽奖功能 首先是html部分&#xff1a; <div class"box"><div class"div2">短裙</div><div class"div3">口红</div><div class"div4">草莓</div><div class"div…

【vue】控制台中如何移除数组arr中的值?如何给数组arr中放值?

移除数组arr属性中的值&#xff1a;vm.arr.shift() 新增数组arr属性中的值&#xff1a;vm.arr.push(‘属性值’) 移除atguigu3样式后效果&#xff1a; 向数组arr中添加样式值后效果&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta…

FlinkSql开窗实例:消费kafka写入文本

前言 以前写Flink从kafka入hdfs因为业务需求和老版本缘故都是自定义BucketSink入动态目录中&#xff0c;对于简单的需求可以直接用Flink SQL API进行输出。Flink版本1.13.1。 Flink官网示例 准备 本地下载个kafka&#xff08;单机即可&#xff09;&#xff0c;新建个桌面目…

Unreal 读写自定义配置文件

基础 首先需要自定义一个继承自UObject的类&#xff0c;UCLASS加上config标志 UCLASS(config MyClass) class UMyClass: public UObject将想要和配置文件交互的属性&#xff0c;UFUNCTION加上Config标志 UPROPERTY(Config, EditAnywhere) float TestP;之后只要配置文件内存…

【日常系列】LeetCode《21·综合应用3》

数据规模->时间复杂度 <10^4 &#x1f62e;(n^2) <10^7:o(nlogn) <10^8:o(n) 10^8<:o(logn),o(1) 内容 lc 217 &#xff1a;存在重复元素 https://leetcode.cn/problems/contains-duplicate/ 提示&#xff1a; 1 < nums.length < 10^5 -10^9 < nums[…

Python基础教程(2)——列表、元组、字典、集合、斐波纳契数列、end 关键字、条件控制、循环语句

1.列表 &#xff08;1&#xff09;删除列表的元素 list [Google, Runoob, 1997, 2000] print ("原始列表 : ", list) del list[2] print ("删除第三个元素 : ", list)&#xff08;2&#xff09;Python列表脚本操作符 &#xff08;3&#xff09;嵌套列表…

Arco 属性

文章目录Arco介绍1. 简介1.1 背景1.2 运行环境1.3 浏览器兼容性2. 设计价值观2.1 清晰2.2 一致2.3 韵律2.4 开放3. 设计原则3.1 及时反馈3.2 贴近现实3.3 系统一致性3.4 防止错误发生3.5 遵从习惯3.6 突出重点3.7 错误帮助3.8 人性化帮助4. 界面总体风格4.1 页面风格4.1.1 主色…

知识答题小程序如何制作_分享微信答题抽奖小程序制作步骤

知识答题小程序如何制作&#xff1f;现在越来越多的企业和组织逐步进行各种获奖知识问答小程序。那么&#xff0c;如何制作一个答题小程序呢&#xff1f;今天&#xff0c;我们一起来看看~需要的老板不要走开哦~既然点进来了&#xff0c;那就请各位老板耐心看到最后吧~怎么做一个…

JDBC如何破坏双亲委派机制

JDBC的注册会涉及到java spi机制&#xff0c;即Service Provideer Interface&#xff0c;主要应用于厂商自定义组件或插件中&#xff1b;简单说就是java来定义接口规则和方法&#xff0c;厂商实现具体逻辑&#xff0c;每家厂商根据自己产品实现的逻辑肯定不相同&#xff0c;但上…

数据库查询语句-详细篇

今天来梳理一下数据库的一些查询语句&#xff0c;做软件/移动端/电脑端&#xff0c;开发程序时必然离不开数据库的设计以及查询&#xff1b; 一&#xff1a;具体的代码如下展示&#xff1a; 1.查询数据库指定表的所有信息 select * from uploadimagecode;2.查询当前数据表部…

说说PPT的“只读模式”和“限制编辑”有何区别

对PPT的内容进行保护&#xff0c;使其不能随意编辑&#xff0c;防止意外更改&#xff0c;我们可以将PPT设置成无法编辑、无法改动的“保护模式”。 设置“保护模式”&#xff0c;一般我们都会想到【限制编辑】模式&#xff0c;但在设置的时候&#xff0c;会发现PPT里&#xff…

毕业半年年终总结

毕业半年年终总结 如果说2021年主要的内容是求职和实习 那么2022年一年主要的内容便是毕业和工作 匆匆忙忙 本科毕业了 6月份的时候参加完毕业答辩&#xff0c;也就顺利的毕业了 实际上中途也有过一些插曲&#xff0c;比如毕业设计是制作某某管理系统&#xff0c;基本上所有…

【Java编程进阶】流程控制结构详解

推荐学习专栏&#xff1a;Java 编程进阶之路【从入门到精通】 文章目录1. 流程控制结构2. 顺序结构3. 分支结构3.1 单分支3.2 双分支3.3 多分支 (if-else)3.4 嵌套 if3.5 多分支结构 (switch)4. 循环结构4.1 for 循环4.2 while 循环4.3 do...while循环5. 流程跳转5.1 break5.2 …

【数据结构】优先级队列(堆)

成功就是失败到失败&#xff0c;也丝毫不减当初的热情 目录 1.理解优先级队列 2.优先级队列的底层 2.1 认识堆 2.1.1 堆的概念 2.2.2 堆的存储 2.2 堆的创建 2.2.1 向下调整算法 2.2.2 堆的创建 2.3 堆的插入 2.4 堆的删除 2.5 查看堆顶元素 2.6 堆的运用 3…

windows 11 安装jdk1.8

1.先去JDK官网下载 JDK1.8官网 2.进入到官网之后 3. 点击上图windows选项       按照你的电脑是32位还是64位按需下载(我电脑是64位) 4. 点击下载之后就会跳转到Oracle账号登录界面&#xff08;没有Oracle账号的注册一下这边我就省略了注册了&#xff09; 5.把下载好的…

商业智能BI财务分析,如何从财务指标定位到业务问题

商业智能BI开发人员都会思考如何从财务指标定位到业务问题&#xff0c;就是做了很多的商业智能BI开发&#xff0c;每次也都涉及到了财务分析&#xff0c;各种财务能力指标&#xff0c;各种可视化的分析图表。但是不知道这些财务指标到底能够反映出企业的什么问题&#xff0c;和…

蓝桥杯Python练习题3-十六进制转八进制

资源限制 内存限制&#xff1a;512.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 给定n个十六进制正整数&#xff0c;输出它们对应的八进制数。 输入格式 输入的第一行为一个正整数n &#xff08;1<n<10&am…