Vue-动画效果

2023-10-27

vue动画效果

vue中动画效果是很简单的一个东西,vue帮助我们做了一些动画封装,同时也支持自定义动画,过度,第三方库,这些方式都可以实现,我们一一举例说明

注意:下面的相关截图,由于不是gif动图,所以展示的并不全面。

1 编写案例

首先编写基本组件代码,首先是普通组件,写点基本元素和样式

然后是app组件,引入并展示组件

查看基本效果,可以通过点击按钮展示或者隐藏h1元素

但是这种切换,是没有动画效果的,所以我们可以简单写点动画

2 给案例增加动画(自定义编写)

定义动画

接下来给我们的案例新增d点简单的动画效果,这里写两个,from(来),to(去)两个动画,编写动画其实就是定义动画 这里我定义了一个show的动画(动画名称随意,但是用的时候要对得上!)

vue不跟动画名进行对话,而是样式的类名

手动控制动画

上面定义号动画之后,需要去使用,只需要把动画定义成class样式在需要使用的元素上定义即可

首先是使用来的动画

很遗憾这里不是gif动图

然后是去的动画,只需要把class切换即可

很遗憾这里不是gif动图

上面就是自己编写的动画效果了,需要我们手动进行动画控制,vue也对动画进行了封装,下面就感受下vue封装的动画如果使用

Vue控制单个动画(transition)

当然,简单的动画需要自己编写,如果想让vue帮助控制某个元素的动画效果,需要使用transition(过度)标签对元素进行包裹,transition适用于单个元素,如果想要控制多个元素,可以使用transition-goup标签,下面会提到

对应的命名也不能是随便起的,vue是这么定义命名的:

来的时候vue叫做v-enter-active(进入的时候激活)

离开的时候vue叫做v-leave-active(离开的时候激活)

这样点击按钮就会执行不同的动画了

3 transition的name属性命名(精准控制元素)

在vue中,每一个transition(过度)还可以取名,使用name属性定义,可以更加精准的控制某一个元素,被name修饰的过度就不能用v了,而是要用对应的name值,如果不写name,那么就是默认的v

如果找不到对应的name或者指令出错,都不会报错,而是丢失动画

如果没有name属性进行精准控制,那么全部被transition标签包裹的元素都是相同的动画,如果想要多个属性进行的动画不一致,必须用到name进行精准控制,如果只有一个属性需要用到动画,那么大可不使用name

比如下面的例子:

4 初始化动画(appear)

现在的效果是页面加载的时候是没有动画的,需要点击按钮才会呈现对应的动画,那么能不能让页面一加载就能执行动画呢? 当然是可以的!

通过appear(显示)属性即可实现,它有两种写法

写法1 完整写法 :appear=“true” 加上引号表示这个是表达式,如果不加引号会报错!

写法2 简单写法 直接appear

5 过度效果(使用过度实现动画)

上面动画的效果,使用过度也可以实现,但是稍微复杂了一些

6 多个元素过度 (transition-group)

如果有多个元素,需要有多个过度效果,那么该怎么写,这是时候就要用到多个元素过度

比如下图:两个h1标签拥同样的过度效果,应该怎么写呢

如果这样直接写肯定是不行的而且控制台会报错

这时候就需要使用transition-group标签了,它不同于transition,前者可以控制多个元素,后者只能控制一个元素

但是使用的时候不能直接这么写,不然会继续保持

使用transition-group的时候,还需要指定key值

7 集成第三方动画(animate.css)

上面的例子,都是我们自己写的动画效果

在vue中,可以很轻松的集成一些第三方库,这些第三方库给我们提供了现成的动画效果,可以帮我们实现炫酷的效果,我们只需要拿来用即可,这种第三方库很多,接下来我使用的是:animate.css

在npm中有一个叫animate.css,这是一个成型的动画库,开箱即用,只要引入到项目,动画效果就来了

官网地址:https://www.npmjs.com/package/animate.css或者https://animate.style/

中文官网地址:http://www.animate.net.cn/

接下来按照我的顺序,下载并使用animate.css的动画效果

安装animate.css

想要使用animate.css,必须要引入animate.css,打开终端,输入:

npm install animate.css

这个库特别小,分分钟就按照完了

安装成功的话会在项目里面的node_modules里面看到这个包

引入animate.css

安装完之后,必须要引入,不然是使用不了的,由于只是引用样式,所以可以简单写引入,如下:

    // 引入animate.css第三方动画库 由于引入样式,可以简写引入方式
    import 'animate.css'

使用animate.css

安装和引入完整之后,就可以使用animate.css了,animate.css给我们封装了一些类名,我们直接把类名放到name属性上即可

这一步只是代表配置成了这个库,还没有指定使用这个库的哪个动画

name='animate_animated_animate_bounce'

接下来需要用到两个新的配置项

enter-active-class:配置进入动画

leave-active-class:配置离开动画

这两个选项对应的动画,都可以从官网获取,右侧是全局各种各样的动画效果,直接复制到属性即可(鼠标悬浮到文字上即可复制,并且点击文字可以在线查看动画效果,但是我点击确没有效果)

这里我选择了两个我喜欢的动画

通过这短短几行代码即可实现对第三方动画库的使用

但是我的页面缺没有动画效果,我查了下,是因为电脑设置的原因

解决动画无效的问题

找到系统属性,点击高级->设置

选择自定义,勾选电脑中的 “窗口内的动画控件和元素”

这时候再次调试,记得刷新下,可以看到动画效果了

8 vue动画效果总结

  1. 作用:在插入、更新或移除 DOM元素时,在合适的时候给元素添加样式类名。

  2. 写法:

    1. 准备好样式:

      1. 元素进入的样式:

        • v-enter:进入的起点
        • v-enter-active:进入过程中
        • v-enter-to:进入的终点
      2. 元素离开的样式:

        • v-leave:离开的起点
        • v-leave-active:离开过程中
        • v-leave-to:离开的终点
    2. 使用<transition>包裹要过度的元素,并配置name属性:

    3. 你好啊!

    4. 备注:若有多个元素需要过度,则需要使用:<transition-group>,且每个元素都要指定key值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue-动画效果 的相关文章

随机推荐

  • 牛客小白月赛75 D矩阵

    这题的边权有1 2所以不能用0 1bfs 虽然我也不是很会用 这题是可以说是个分层图 我们要利用小根堆进行排序 让边权小的排在前面 实现小根堆有两种方式 第一种是比较巧妙的 因为优先队列默认实现的是大根堆 所以我们可以把元素取反放进去 因为
  • LCD1602液晶显示屏的工作原理图是什么呢?

    本文重点是由深圳市兴宇合电子技术人员为大家介绍LCD1602液晶显示屏的工作原理以及原理图 希望对大家有所帮助 1 LCD1602液晶显示屏工作原理如下 LCD1602液晶显示屏通过电压来改变填充在两块平行板之间的液晶材料内部分子的排列状况
  • SIFT特征提取算法总结

    转自 http www jellon cn index php archives 374 一 综述 Scale invariant feature transform 简称SIFT 是一种图像特征提取与匹配算法 SIFT算法由David G
  • Java教程【01.01】 对象和类

    Java技术栈 对象和类 什么是对象和类 在Java中 对象是具有属性和行为的实体 而类是一组定义操作和属性的规范或蓝图 类包含数据成员 变量 和方法 函数 对象是类的实例化 如何创建一个对象 要创建一个对象 必须先定义一个类 下面是一个简
  • 模块化开发的时候,sqlsession如何配置多个typeAliasesPackage,mapperLocations

    如图 我们进行模块化开发的时候 往往我们每个人的bean和mapper都不在同一个路径包内 如果我们按照以下方式配置的话 就会报异常 大致上是因为不支持
  • VPP代码阅读中文注解--crc32.h

    static always inline u32 clib crc32c u8 s int len u32 v 0 if x86 64 for len gt 8 len 8 s 8 v mm crc32 u64 v u64 s else w
  • 8月热门论文丨AI Agent会是大模型的未来发展方向吗?

    点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入 以下内容来源于AMiner科技 过去的8月 如果让我用一个词来总结 那就是 Agent 大模型的下半场已经拉开序幕 大厂们都纷纷表态入局 Agent OpenAI创始成员Andr
  • 头条面试官问: 100TB文件上传该怎么优化性能?

    目录 一 写在前面 二 原始的文件上传方案 三 HDFS对大文件上传的性能优化 1 Chunk缓冲机制 2 Packet数据包机制 3 内存队列异步发送机制 四 总结 一 写在前面 上一篇文章 我们聊了一下Hadoop中的NameNode里
  • tp5Internal Server Error报错解决办法

    重写apache配置文件
  • ubuntu下java8卸载

    要删除 OpenJDK 如果已安装的话 首先 检查是安装的哪个 OpenJDK包 dpkg list grep i jdk 移除 openjdk包 apt get purge openjdk 卸载 OpenJDK 相关包 apt get p
  • Kafka原理

    生产者原理解析 生产者工作流程图 一个生产者客户端由两个线程协调运行 这两个线程分别为主线程和 Sender 线程 在主线程中由kafkaProducer创建消息 然后通过可能的拦截器 序列化器和分区器的作用之后缓存到消息累加器 Recor
  • JAVA 项目---学生成绩管理系统(附标准源码)使用文件存储

    项目要求 GUI界面 实现以下功能 能够录入学生的信息及成绩 具体为姓名 学号 应用数学 大学英语 java编程 计算机应用 还能够根据输入学生姓名返回学生的信息 使用mysql数据库存储 参考这一篇博文 https blog csdn n
  • 【Git系列】Git到远程仓库

    Git到远程仓库 1 github账号注册 2 初始化本地仓库 3 创建GitHub远程仓库 4 给本地仓库起别名 4 1 查看远程库的连接地址 4 2 起别名 5 git推送操作 6 git克隆操作 7 邀请加入团队 push 7 1 未
  • Hough变换原理

    Hough变换原理 NEU icerain 2007 6 25 一 简单介绍 Hough变换是图像处理中从图像中识别几何形状的基本方法之一 Hough变换的基本原理在于利用点与线的对偶性 将原始图像空间的给定的曲线通过曲线表达形式变为参数空
  • ffmpeg 剪辑 剪切 一段 视频 windows中

    从视频的14分钟44秒处 剪10秒钟视频 存为 output mp4 文件 ffmpeg ss 00 14 44 t 00 00 11 i H BaiduNetdiskDownload xialuotefannao mp4 vcodec c
  • 分布式最小生成树算法

    分布式最小生成树算法 作为分布式算法中的经典算法之一 GHS分布式最小生成树算法的相关资料却并不多见 相关的原理介绍只是范范而谈 代码实现也比较少见 本文将汇总目前网络上可查阅的相关参考资料并结合自己的理解 旨在深入理解GHS的算法核心与实
  • 【起航】目标检测的里程碑R-CNN通俗详解

    前面我们学习了目标检测中常用的评价指标以及传统的目标检测思路 如下 目标检测中常用的评价指标传统目标检测思路 为了系统的学习 以及形成一个完整的知识体系 所以接下来我们逐步深入学习常见的目标检测模型 后面常见模型的学习顺序大致为R CNN
  • 解决dnd-kit点击事件和拖拽事件的冲突

    dnd kit https github com clauderic dnd kit 在使用dnd kit作为拖拽库时 可能会遇到拖拽的组件中包含可交互的组件 例如一个input或者button 当绑定上事件之后 例如click 这时浏览器
  • docker学习:网络连通

    这里主要就是使用docker connect命令来做网络连通 在这里插入图片描述 docker network命令也看一下吧 docker run d P name tomcat net 01 net mynet tomcat 测试两个不同
  • Vue-动画效果

    vue动画效果 vue中动画效果是很简单的一个东西 vue帮助我们做了一些动画封装 同时也支持自定义动画 过度 第三方库 这些方式都可以实现 我们一一举例说明 注意 下面的相关截图 由于不是gif动图 所以展示的并不全面 1 编写案例 首先