IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Vue3 过渡&动画 -> 正文阅读

[游戏开发]Vue3 过渡&动画

Transition过渡动画

<transition name="why">
  <h2 v-if="isShow">Hello World</h2>
</transition>

.why-enter-from,
.why-leave-to {
  opacity: 0;
}
.why-enter-to,
.why-leave-from {
  opacity: 1;
}
.why-enter-active,
.why-leave-active {
  transition: opacity 2s ease;
}

请添加图片描述

Transition组件的原理:

  1. 自动嗅探目标元素是否应用了CSS过渡或者动画,如果有,那么在恰当的时机添加/删除 CSS类名;

  2. 如果 transition 组件提供了JavaScript钩子函数,这些钩子函数将在恰当的时机被调用;

  3. 如果没有找到JavaScript钩子并且也没有检测到CSS过渡/动画,DOM插入、删除操作将会立即执行;

animation动画

<transition name="why">
  <h2 v-if="isShow">Hello World</h2>
</transition>

.why-enter-active {
  animation: bounce 1s ease;
}
.why-leave-active {
  animation: bounce 1s ease reverse;
}
@keyframes bounce {
  0% {
    transform: scale(0)
  }
  50% {
    transform: scale(1.2);
  }
  100% {
    transform: scale(1);
  }
}

如果同时存在Transition与animation则可以通过设置 type 属性指定类型、duration 指定过渡的时间.

type 属性为 animation 或者 transition 来明确的告知Vue监听的类型

duration可以设置两种类型的值:

? pnumber类型:同时设置进入和离开的过渡时间;

? pobject类型:分别设置进入和离开的过渡时间;

<transition name="why" type="transition" :duration="{enter: 800, leave: 1000}">
  <h2 class="title" v-if="isShow">Hello World</h2>
</transition>

选择过渡的模式mode

mode 可以设置动画进入和离开的顺序。

? in-out: 新元素先进行过渡,完成之后当前元素过渡离开;

? out-in: 当前元素先进行过渡,完成之后新元素过渡进入;

<transition name="why" mode="out-in">
  <h2 class="title" v-if="isShow">Hello World</h2>
  <h2 class="title" v-else>你好啊,李银河</h2>
</transition>

animate.css的基本使用

官方地址: Animate.css | A cross-browser library of CSS animations.

安装animate.css: npm install animate.css

在main.js中导入animate.css: import "animate.css";

两种用法:

//用法一  直接使用animate库中定义的 keyframes 动画
.why-enter-active {
    animation: bounceInUp 1s ease-in;
}
.why-leave-active {
  animation: bounceInUp 1s ease-in reverse;
}

//用法二  直接使用animate库提供给我们的类
<transition enter-active-class="animate__animated animate__fadeInDown" //animate__animated为基本配置,后者为所选动画
            leave-active-class="animate__animated animate__flipInY">
  <h2 class="title" v-if="isShow">Hello World</h2>
</transition>

生命周期钩子函数与gasp结合使用

官方地址: GSAP - GreenSock

生命周期钩子函数:

<transition
  @before-enter="beforeEnter"
  @enter="enter"
  @after-enter="afterEnter"
  @before-leave="beforeLeave"
  @leave="leave"
  @afterLeave="afterLeave"
>
  <h2 class="title" v-if="isShow">Hello World</h2>
</transition>

methods:{
  beforeEnter() {
    console.log("beforeEnter");
  },
  enter() {
    console.log("enter");
  }, 
}

gsap库:可以通过JavaScript为CSS属性、SVG、Canvas等设置动画,并且是浏览器兼容的;

第一步:需要安装gsap库; npm install gsap

第二步:导入gsap库;

第三步:使用对应的api即可;

两者相结合使用:

<transition @enter="enter"
            @leave="leave"
            :css="false">
  <h2 class="title" v-if="isShow">Hello World</h2>
</transition>

methods: {
  enter(el, done) { 
    console.log("enter");
    gsap.from(el, {
      scale: 0,
      x: 200,
      onComplete: done
    })
  },
  leave(el, done) {
    console.log("leave");
    gsap.to(el, {
      scale: 0,
      x: 200,
      onComplete: done
    })
  }
}
  • 在使用JavaScript来执行过渡动画时,需要进行 done 回调,否则它们将会被同步调用,过渡会立即完成。

  • 添加 :css=“false”,也会让 Vue 会跳过 CSS 的检测,除了性能略高之外,这可以避免过渡过程中 CSS 规则的影响。

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:52:21  更:2022-05-05 11:54:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:32:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码