vue3过渡动画的详解

目录
  • 一、vue中动画简单介绍
  • 二、vue的transition动画
  • 三、transition组件的实现原理
  • 四、transition过渡动画的class属性
  • 五、class的添加时机和命名规则
  • 六、transition过渡css动画
  • 七、显示的指定动画的时间
  • 八、transition的过渡模式
  • 九、动态组件的切换
  • 十、appear初次渲染
  • 十一、animate.css
  • 十二、gsap库
  • 十三、gsap实现数字变化
  • 十四、实现列表的过渡
  • 十五、列表的交错过渡案例二
  • 总结

一、vue中动画简单介绍

在vue中如果一些过程不存在动画效果,则表现出来的结果是比较生硬的。此时我们需要设置动画来使得页面更加灵活。

如上面代码所示,我们的h1只是在消失和显示来回切换,但是这样效果生硬。
此时我们使用transition组件来实现动画效果。

二、vue的transition动画

transition组件可以添加name属性,注意name属性值可以为class样式的第一个字符串。上面例子会在出现和消失会展示出来opacity渐变的情况。

三、transition组件的实现原理

上面的图为在来回切换过程中,h1标签中的class的变化,我们可以看到在进行渐变过程中,vue通过控制标签中的class的改变来实现动画效果。

具体流程如下所示

1、当在transition全局组件中进行dom插入或者删除时,此时vue会自动检测是否存在相关的css样式,如果存在,则在适当
的时机将class样式添加或者删除。
2、如果transition提供生命周期钩子,那么该钩子会在适当的时候进行回调。
3、如果不存在css样式也不存在生命周期钩子,那么dom插入和删除都会立即执行。

四、transition过渡动画的class属性

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

五、class的添加时机和命名规则

如果在transition中不存在,使用v-代替,如果存在name属性,则使用名称why-enter-active

六、transition过渡css动画

如图所示使用只需要使用enter-active,和leave-active设置相关的动画样式。

思考:如果出现一个问题:就是我们在一个动画中同时使用animation和transition,时间不一致该如何做.

如上图所示,我们设置动画和过渡效果,但是两者时间不一致,此时我们可以设置type属性,其值一个为animation另一个为transition,设置该属性时,来告知transition组件监听属性的类型。

七、显示的指定动画的时间

可以在transition组件上,设置duration属性,其值可以为number类型,也可以是Object类型。这样设置时间就相当于强制设置时间,无论动画是否执行完毕,都会当duration到达时间后,显示最终效果。

八、transition的过渡模式

可以这样理解:如上述代码所示,我们将使用v-ifv-else进行两种状态的设置。如果不存在mode属性的话,则两个状态都会同时执行动画,导致用户体验不友好,此时我们设置mode可以设置两种模式out-inin-outout-in表现为去除的标签元素先执行,然后再执行显示的。in-out则反之。

九、动态组件的切换

组件的动画使用和一般标签的动画使用过程是一样的。

十、appear初次渲染

我们可以使用appear来设置初次渲染的动画效果。

十一、animate.css

animate.css网站

如果我们在开发中使用的动画都是自己写的,这样的效率比较低下,此时我们存在第三方库,其中存在一些动画,我们可以使用。

使用步骤:

一、安装 npm install animate.css

二、导入animate.css样式

三、使用animate提供的动画或者是类

使用css样式

使用类

animate__animated是一些配置信息样式。如图所示就是一些时间,模式默认设置,所以该类是必须加上的,animate__..才是需要添加的样式。

十二、gsap库

transition中的一些生命周期函数,如上图所示。

在执行过渡动画时,会进行done()回调,否则会进行同步,过渡会立即完成。

:css:false:表示vue会忽略css检测,除了性能更高以外,还避免过渡过程中css规则影响。一般常用的函数有enter和leave函数。

gsap的详细的参数设置

十三、gsap实现数字变化

十四、实现列表的过渡

因为我们在使用transition组件时,其中包含的是单个组件,如果我们想要在其中包含多个组件,那么该如何去做?此时我们有一个标签transiton-group全局组件,我们可以在其中设置多个标签内容。

transition-group具有如下特点:

1、默认情况下不会渲染一个元素的包裹器,但是可以指定以一个指定的标签进行渲染。
2、过渡模式不可用,因为我们不切换特定的元素
3、内部元素总是需要提供一个key:attribute的值
4、css过渡样式类,会作用在内部元素中,而不是外部标签上。

十五、列表的交错过渡案例二

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • 关于Vue3过渡动画的踩坑记录

    目录 背景 问题定位 进一步分析 总结 背景 在我的 <Vue 3 开发企业级音乐 App>课程问答区,有个同学提了个问题,在歌手列表到歌手详情页面到转场动画中,只有进入动画,却没有离场动画: 该学生确实在这个问题上研究了有一段时间,而且从他的描述,我一时半会儿也想不出哪有问题,于是让他把代码传到 GitHub 上,毕竟直接从代码层面定位问题是最靠谱的. 问题定位 一般遇到此类问题的时候,我的第一反应是他用的 Vue 3 版本可能有问题,毕竟 Vue 3 还在不断迭代过程,某个版本有一些小 b

  • Vue 解决路由过渡动画抖动问题(实例详解)

    前言 Vue-Router 作为 Vue 的核心模块,它为我们提供了基于组件的路由配置.路由参数等功能,让单页面应用变得更易于管理.良好的路由管理尤为重要,比如路由拦截.路由懒加载.路由权限等都在开发中起着至关重要的作用.同时路由还支持视图过渡效果,没有添加过渡动画的路由切换会感觉很生硬,为了提高用户体验,路由过渡还是很有必要的.毕竟做出来,自己看着也舒服. 过渡动效文档:https://cn.vuejs.org/v2/guide/transitions.html 过渡动画抖动 代码片段 这里为

  • 解决vue的过渡动画无法正常实现问题

    前记:最近在写vue的一个项目要实现过渡的效果,虽然vue动画不是强项,库也多,但是基本的坑还是得踩扎实; 建议:先学习vue官方文档的进入/离开 & 列表过渡章节,那么我们来看bug; 首先上出现问题的代码 <!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> .haha-leave-active { transitio

  • vue实现列表滚动的过渡动画

    本文实例为大家分享了Vue实现列表滚动过渡动画的具体代码,供大家参考,具体内容如下 效果图 失帧比较严重,在手机上效果更佳. 原理分析 这个滚动页面由两个部分布局(底部固定的Tab页面除外).一个是顶部的banner轮播,一个是下面的列表.这里的重点是做列表的动画,banner轮播的网上资料很多,请自行查找. 这个动画最重要的是在滚动中实时计算startIndex和endIndex,动画比较简单,就是scale和opacity的变化.向下滚动时,startIndex变小:向上滚动时,endInd

  • 如何利用vue实现css过渡和动画

    目录 一.过渡和动画的区别 二.使用Vue实现基础得css过渡与动画 1. 动画 2. 过渡 三.使用transition标签实现单元素/组件的过渡和动画效果 1. transition 的基本介绍 2. transition 的过渡class 3. 过渡示例 4. 动画示例 5. transition的name属性 6. 自定义过渡类名 7.同时设置过渡和动画 8. duration属性 9. 使用js实现动画 四.组件和元素切换动画的实现 五.列表动画 六.状态动画 总结 一.过渡和动画的区

  • vue3过渡动画的详解

    目录 一.vue中动画简单介绍 二.vue的transition动画 三.transition组件的实现原理 四.transition过渡动画的class属性 五.class的添加时机和命名规则 六.transition过渡css动画 七.显示的指定动画的时间 八.transition的过渡模式 九.动态组件的切换 十.appear初次渲染 十一.animate.css 十二.gsap库 十三.gsap实现数字变化 十四.实现列表的过渡 十五.列表的交错过渡案例二 总结 一.vue中动画简单介绍

  • Vue-cli 移动端布局和动画使用详解

    vue-cli(重点) vue-cli 是用来管理 vue 项目的工具,可以使用 vue-cli 快速创建项目.启动项目.编译项目等操作. 常说的vue全家桶指:vue-cli.vue-router.vuex.vue-resource. vue的单文件组件扩展名是.vue文件,需要借助vue-loader,才能被正常解析. vue-cli 3 (新版本) 如果之前安装过低版本的 vue-cli ,那么命令行执行: npm uninstall vue-cli -g 然后安装 npm install

  • Android Dialog 动画实例详解

    Android Dialog 动画实例详解 动画描述: 动画与底部菜单一样出现和消失 制作过程: 1. 创建两个动画文件 window_in.xml: <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration=&

  • IOS登录页面动画、转场动画开发详解

    动画效果 需求分析 分析方法 下载这个gif动图,用mac默认的打开方式打开这个gif图(双击图片即可),效果如下 鼠标选中红色箭头所指的位置,然后按住键盘方向键下键,图片会以缓慢的可控的速度播放,便于分析动画的构成. 小tips:macos系统想正常浏览一个gif动图,可以鼠标单击图片后按空格,也可以选择用浏览器打开,gif图会以正常速度播放. 技术点分析 如何生成一个动画让控件执行? 现流行的方式主要有三种: 1.基本动画 2.核心动画 3.三方框架--POP框架(由Facebook开发)

  • 使用Webpack 搭建 Vue3 开发环境过程详解

    从零开始使用 Webpack 搭建 Vue3 开发环境 创建项目 首先需要创建一个空目录,在该目录打开命令行,执行 npm init 命令创建一个项目,这个过程会提示输入一些内容,完成后会自动生成一个 package.json 文件 Webpack 的配置文件 project project-name + |- index.html |- package.json + |- webpack.config.js + |- /src + |- index.js webpack.config.js '

  • Android绘制旋转动画方法详解

    目录 1.准备工作 2.加速减速原理 3.初始化 4.开始 5.加速 6.减速 7.停止 8.项目源码 Layout部分 MainActivity部分 1.准备工作 首先需要有一个用于旋转的图片 需要考虑如何开始.结束.加速.减速 2.加速减速原理 本次的动画采用RotateAnimation,初始化需要的参数如下 public RotateAnimation(float fromDegrees,float toDegrees,int pivotXType,float pivotXValue,i

  • 十分钟带你快速上手Vue3过渡动画

    目录 写在前面 Vue的transition组件 过渡demo class的命名规则 使用animation 过渡模式 appear属性 animate.css库的使用 使用动画序列 使用自定义过渡class 写在最后 写在前面 在实际开发中,为了增加用户体验,经常会使用到过渡动画,而过渡动画在CSS中是通过transition和animation实现的.而在Vue中,Vue本身中内置了一些组件和API可以帮助我们方便的实现过渡动画效果:接下来我们就学习一下. Vue的transition组件

  • Android Flutter实现五种酷炫文字动画效果详解

    目录 前言 波浪涌动效果 波浪线跳动文字组 彩虹动效 滚动广告牌效果 打字效果 其他效果 自定义效果 总结 前言 偶然逛国外博客,看到了一个介绍文字动画的库,进入 pub 一看,立马就爱上这个动画库了,几乎你能想到的文字动画效果它都有!现在正式给大家安利一下这个库:animated_text_kit.本篇我们介绍几个酷炫的效果,其他的效果大家可以自行查看官网文档使用. 波浪涌动效果 波浪涌动 上面的动画效果只需要下面几行代码,其中loadUntil用于控制波浪最终停留的高度,取值是0-1.0,如

  • Android创建淡入淡出动画的详解

    介绍: 淡入淡出动画(也称为"叠化")逐渐淡出一个 View 或 ViewGroup,同时淡入另一个.此动画适用于您希望在应用中切换内容或视图的情况. 下面我们通过一个例子来创建使用淡入淡出动画. 首先创建一个简单的布局activity_short_anim.xml <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://sch

随机推荐