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

Vue Transition 过渡组件 + animate.style 动画库的使用

Vue 提供了 transition 的封装组件,可以给被包裹的任何元素和组件添加进入/离开过渡效果。详情:Vue-进入/离开 & 列表过渡

本文主要记录 Vue Transition 组件搭配 animate.style 动画库的使用步骤:

animate.style 官网:animate.style 动画库

安装 animate 动画库

打开 animate.style 的官网首页就有该动画库的安装使用步骤详解,这里就简单记录一下,比如使用 npm 安装

npm install animate.css -S

安装完成后可以在项目的 package.json 文件中搜索查看下是否有 animate.css 文件且对应着安装的版本号。

导入和使用 animate 动画库

然后在需要使用该动画库的页面的 script 中导入 animate.style 的样式文件

// 导入动画样式库
import 'animate.css'

然后在页面中将在 animate.style 动画库中相中的动画效果的 class 类名添加给对应的页面元素即可。注意:如果安装的 animate.css 的版本 >V3.0 还需要给动画样式一并添加上 animate__animated  的前缀,这样动画才会生效!

使用示例

演示 Vue 的 transition 过渡组件搭配 animate.style 的使用(前提:安装和导入步骤已完成)

    <!-- 演示动画的使用 -->
    <button @click="flag = !flag">显示/隐藏</button>
    <Transition leave-active-class="animate__animated animate__fadeOut"
      enter-active-class="animate__animated animate__flash">
      <div class="box" v-if="flag"></div>
    </Transition>

主要就是将需要使用动画的元素/组件 包裹到 vue 提供的 transition 组件中,然后给 transition 组件添加 leave-active-class 隐藏的样式类名 和 enter-active-class 显示的样式类名即可。

注:Transition 组件是用来过渡单块元素的(即:为元素整体添加过渡效果的情况),而如果我们要过渡的元素是一个列表内部使用了 v-for 进行循环的情况)那我们需要使用 TransitionGroup 组件。

TransitionGroup 过渡列表

示例如下:Vue3 + TS 的写法

HTML:

<!-- 演示过渡列表 -->
    <button @click="add">add</button>
    <button @click="pop" style="margin-left: 20px;">pop</button>
    <div class="numberlist">
      <TransitionGroup enter-active-class="animate__animated animate__bounceIn"
        leave-active-class="animate__animated animate__fadeOutDown">
        <div v-for="item in numberList" :key="item" class="numberitem">{{ item }}</div>
      </TransitionGroup>
    </div>

 typeScript:

// 导入动画样式库
import 'animate.css'
import { reactive } from "vue";
const numberList = reactive<number[]>([1, 2, 3, 4, 5, 6])
const add = () => {
  numberList.push((numberList.length + 1))
}
const pop = () => {
  numberList.pop()
}

CSS:(less)

.numberlist {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  font-size: 40px;

  .numberitem {
    margin: 10px;
  }
}

静态效果:

TransitionGroup 过渡列表效果描述:添加的动画效果是作用于每一个列表项的,所以在往列表中添加元素或者移除元素时单项是有动画效果的(比如:淡入淡出),实际效果可以自己复制代码运行体验一下哦~感觉很不错的! 

相关文章:

  • 【网络工程师笔记】——ACL
  • java计算机毕业设计学生生活管理源码+系统+数据库+lw文档
  • python环境搭建
  • 基于simulink的超级电容,电池及DC motor充放电系统仿真
  • JS(DOM)第十五课
  • Java多线程(2)
  • 深入浅出Spring注解(22)
  • [C++基础]-初识模板
  • 【黄啊码】MySQL入门—13、悲观锁、乐观锁怎么用?什么是行锁、页锁和表锁?死锁了咋办?
  • 小小博客项目(servlet实战演练)
  • C++学习(6)——模板
  • C++重载运算符
  • 1027推免分享材料 备份
  • JavaScript---常用JS方法(utils.js)额外篇
  • 《CTF特训营》学习笔记——APK逆向基础
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 【Amaple教程】5. 插件
  • centos安装java运行环境jdk+tomcat
  • CSS魔法堂:Absolute Positioning就这个样
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • Java到底能干嘛?
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • jquery ajax学习笔记
  • Linux后台研发超实用命令总结
  • Meteor的表单提交:Form
  • node 版本过低
  • Nodejs和JavaWeb协助开发
  • Redis字符串类型内部编码剖析
  • spring学习第二天
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 基于web的全景—— Pannellum小试
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 我的zsh配置, 2019最新方案
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 写代码的正确姿势
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​Python 3 新特性:类型注解
  • #Spring-boot高级
  • (二)fiber的基本认识
  • (三)模仿学习-Action数据的模仿
  • (一)Dubbo快速入门、介绍、使用
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • .NET : 在VS2008中计算代码度量值
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .NET6 命令行启动及发布单个Exe文件
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • .NET分布式缓存Memcached从入门到实战
  • .NET开源快速、强大、免费的电子表格组件