当前位置: 首页 > article >正文

Vue前端开发:animate.css第三方动画库

在实际的项目开发中,如果自定义元素的动画,不仅效率低下,代码量大,而且还存在浏览器的兼容性问题,因此,可以借助一些优秀的第三动画库来协助完成动画的效果,如animate.css和gsap动画库,前者使用样式,后者通过JavaScript来实现动画效果。今天先给大家分享animate.css知识,如果有所帮助,大家点点关注支持一下,也可以联系上我一起学习。
animate.css是一个使用CSS样式实现动画效果的第三方库文件,它包含各类动画效果,如强调、切换和引导等,同时,它能很好地兼容各大浏览器,可以很方便地快速运用到各个Web项目中,在使用animate.css动画库之前,需要先在在项目文件夹下,输入如下指令。

npm install animate 

安装成功后,在需要使用该动画效果的组件中导入该库文件,代码如下。

import "animate.css"; 

导入成功后,就可以在组件的模板元素中,使用动画库的类别样式了,接下来通过一个示例来演示animate.css 库在组件中的使用过程。
实例5-4 应用动画库中样式

1. 功能描述

在上述示例5-1的基础上,当单击按钮时,通过应用第三方动画的样式,实现元素以反弹跳跃的方式隐藏,以上下摇摆的方式显示。

2. 实现代码

在项目components 文件夹的ch5子文件夹中,添加一个名为“PlugAnimate”的.vue文件,在文件中加入如清单5-4所示代码。

代码清单5-4 PlugAnimate.vue代码

<template>
  <div class="action">
    <div class="act">
      <input type="button" @click="startTrans()" 
		:value="blnShow ? '隐藏动画' : '显示动画'">
    </div>
    <transition name="animate__animated animate__bounce"
	 enter-active-class="animate__swing"
      leave-active-class="animate__backOutUp">
      <div class="mytrans" v-if="blnShow"></div>
    </transition>
  </div>
</template>
 
<script>
import "animate.css";
export default {
  name: "PlugAnimate",
  data() {
    return {
      blnShow: true
    };
  },
  methods: {
    startTrans() {
      this.blnShow = !this.blnShow;
    }
  },
};
</script>
<style>
.action .act {
  margin: 10px 0;
}

.action .act input {
  width: 80px;
  height: 32px;
}

.mytrans {
  width: 200px;
  height: 30px;
  background-color: #ccc;
}
</style>

3. 页面效果

保存代码后,页面在Chrome浏览器下执行的页面效果如图5-5所示。
在这里插入图片描述

4. 源码分析

在上述示例的代码中,首先向动画组件添加两个动画名称,分别是animate__animated和 animate__bounce,前者是一个类似于全局变量,它定义了动画的持续时长;后者则是一个动画具体的效果名称,示例中的bounce为反弹效果,

然后再设置动画进入和离开时的类别样式animate__swing和animate__backOutUp,通过这些动画样式,实现需求中的动画效果,由于animate.css库是开源的,安装后就已下载到本地文件中,如果需要修改某个动画效果,也可以找到源文件,直接修改相应样式代码。
在这里插入图片描述


http://www.kler.cn/a/386276.html

相关文章:

  • Towards Reasoning in Large Language Models: A Survey
  • Wireshark中的length栏位
  • 相机光学(四十)——2x2 Adjacent Pixel Binning
  • ssm114基于SSM框架的网上拍卖系统的设计与实现+vue(论文+源码)_kaic
  • MaxKB
  • 力扣-Mysql-3308- 寻找表现最佳的司机(中等)
  • TOSHIBA 74VHC00FT COMS汽车、工业企业的选择
  • windows terminal下载安装并替换vscode默认终端
  • 【Javascript】-一些原生的网页设计案例
  • 【LeetCode】【算法】48. 旋转图像
  • [Qt] 信号与槽:深入浅出跨UI与跨线程的信号发送
  • 创建者模式之【建造者模式】
  • 用 Python 从零开始创建神经网络(三)
  • 线程安全的单例模式
  • 小程序开发进阶之路: 重新认识产品经理
  • 嵌入式新手必读好文,常见传感器类型中,LM393的作用,及模块原理(看不懂来问我)!!!
  • 【Linux】工具和软件
  • 前端必知必会-JavaScript数组方法(上)
  • GitHub中搜索项目方法
  • 【学习笔记】Kylin-Desktop-V10-SP1 麒麟系统知识5——网络设置
  • 从入门到精通:如何在Vue项目中有效运用el-image-viewer
  • 网络自动化03:简单解释send_config_set方法并举例
  • Docker 基础命令简介
  • Hive 实现查询用户连续三天登录记录
  • 【Ubuntu学习】Ubuntu无法使用vim命令编辑
  • 线程隔离和熔断降级并配置对应的服务降级