Vue2过渡标签transition使用动画方式

 更新时间:2024年07月25日 09:52:26   作者:打不着的大喇叭  
这篇文章主要介绍了Vue2过渡标签transition使用动画方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

注意:动画必须使用v-if || v-show配合

1、Vue2配Css3实现

我们需要使用 过渡 标签 <transition> :

<transition name="hello" appear>
      <h1 v-show="isShow">你好啊!</h1>
</transition>
 
:appear="true" [值需要的是布尔值,所以需要用v-bind绑定] 也可以直接写 【appear】
appear使用效果是:打开页面立马执行一次过来的动画

css3方案一:在样式style标签里面设置动画

【给来和走的样式的名字定义为 v-enter-active | v-leave-active,设置name的值,需要把v 改成它】

<style>
h1 {
  background-color: orange;
}
/* 如果过渡标签加了name属性,下面的v需要改为name的值 
.v-enter-active {
  animation: gbase 1s;
}
.v-leave-active {
  animation: gbase 1s reverse;
}
*/
.hello-enter-active {
  animation: gbase 1s;
}
.hello-leave-active {
  animation: gbase 1s reverse;
}
@keyframes gbase {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(0px);
  }
}
</style>

注意:vue解析的时候 <transition> 就没有了

源码

<template>
  <div>
    <button @click="isShow = !isShow">显示/隐藏</button>
    <!--//todo 使用动画 [ 标签必须使用v-if||v-show才行 ]
      //todo 1、使用 过渡 标签 <transition> 【里面有一个属性name 标志它的名字】
      //todo 2、在样式style标签里面设置动画
      //todo 3、给来和走的样式的名字定义为 v-enter-active | v-leave-active 【设置name的值,需要把v 改成它】
     -->
    <!-- //? 注意 vue解析的时候 <transition> 就没有了 -->
    <!-- //todo :appear="true" [值需要的是布尔值,所以需要用v-bind绑定] 也可以直接写 【appear】
         //* appear 使用效果是:打开页面立马执行一次过来的动画 -->
    <transition name="hello" appear>
      <h1 v-show="isShow">你好啊!</h1>
    </transition>
  </div>
</template>
<script>
export default {
  name: "Test",
  data() {
    return {
      isShow: true,
    };
  },
};
</script>
<style>
h1 {
  background-color: orange;
}
.hello-enter-active {
  animation: gbase 1s;
}
.hello-leave-active {
  animation: gbase 1s reverse;
}
@keyframes gbase {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(0px);
  }
}
</style>

其他属性样式

<transition>标签 里面只能使用一个 DOM 标签

使用 <transition-group> 可以里面放多个标签使用动画

【但是里面加动画的标签需要加 唯一标识key

    <transition-group name="hello" appear>
      <h1 v-show="isShow" key="1">你好啊!</h1>
      <h1 v-show="!isShow" key="2">我不好啊!</h1>
    </transition-group>

css3方案2

<style>
h1 {
  background-color: orange;
  /* transition: 0.5 linear; */
}
todo 进入的起点
.hello-enter {
  transform: translateX(-100%);
}
 todo 进入的终点
.hello-enter-to {
  transform: translateX(0px);
}
 todo 离开的起点
.hello-leave {
  transform: translateX(0px);
}
 todo 离开的终点
.hello-leave-to {
  transform: translateX(-100%);
}
 
简写 :进入的起点 就是 离开的终点
.hello-enter,
.hello-leave-to {
  transform: translateX(-100%);
}
.hello-enter-active,
.hello-leave-active {
  或者写在需要加动画的标签里面
  transition: 0.5 linear;
}
简写 :进入的终点 就是 离开的起点
.hello-enter-to,
.hello-leave {
  transform: translateX(0px);
}
</style>

2、vue2配合 animate库使用动画

npm install animate.css : 安装并使用动画库

import "animate.css"; 引入该库

设置

name="animate__animated animate__bounce"

https://animate.style/里面找动画,把动画名称赋值给enter-active-class 、leave-active-class这两个属性

    <transition-group
      name="animate__animated animate__bounce"
      appear
      enter-active-class="animate__jackInTheBox"
      leave-active-class="animate__fadeOut"
    >
      <h1 v-show="isShow" key="1">你好啊!</h1>
    </transition-group>

源码

<template>
  <div>
    <button @click="isShow = !isShow">显示/隐藏</button>
 
    <!-- // todo 2、设置 name="animate__animated animate__bounce" -->
    <!-- // todo 3、去https://animate.style/ 里面找动画 -->
    <transition-group
      name="animate__animated animate__bounce"
      appear
      enter-active-class="animate__jackInTheBox"
      leave-active-class="animate__fadeOut"
    >
      <h1 v-show="isShow" key="1">你好啊!</h1>
    </transition-group>
  </div>
</template>
// npm install animate.css : 安装并使用动画库
<script>
// todo 1、因为是一个样式,可以直接引入文件
import "animate.css";
 
export default {
  name: "Test",
  data() {
    return {
      isShow: true,
    };
  },
};
</script>
<style>
h1 {
  background-color: orange;
  /* transition: 0.5 linear; */
}
</style>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vue登录密码验证MD5加密实践

    Vue登录密码验证MD5加密实践

    文章主要描述MD5的特点、原理和使用方法,特点包括固定长度、容易计算、抗修改和强抗碰撞,使用方法包括安装js-md5、引入js文件、放到原型等,最后给出一个使用示例,用于密码验证
    2026-04-04
  • vue.js多页面开发环境搭建过程

    vue.js多页面开发环境搭建过程

    利用 vue-cli 搭建的项目大都是单页面应用项目,对于简单的项目,单页面就能满足要求。这篇文章主要介绍了vue.js多页面开发环境搭建 ,需要的朋友可以参考下
    2019-04-04
  • Vue实现单行删除与批量删除

    Vue实现单行删除与批量删除

    这篇文章主要介绍了Vue实现单行删除与批量删除,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • vuex的使用和简易实现

    vuex的使用和简易实现

    这篇文章主要介绍了vuex的使用和简易实现,帮助大家更好的理解和使用vuex,感兴趣的朋友可以了解下
    2021-01-01
  • Vue移动端下拉加载更多数据onload实现方法浅析

    Vue移动端下拉加载更多数据onload实现方法浅析

    这篇文章主要介绍了Vue移动端下拉加载更多数据onload实现方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • 在Vue3中创建和使用全局组件的实现方式

    在Vue3中创建和使用全局组件的实现方式

    在前端开发中,Vue.js 是一个广泛使用的框架,因其灵活性和强大的功能,得到许多开发者的喜爱,Vue 3 的发布为这一框架带来了很多新的特性和改进,在本文中,我们将详细讨论如何在 Vue 3 中创建和使用全局组件,并通过示例代码展示具体实现方式,需要的朋友可以参考下
    2024-07-07
  • 解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)

    解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)

    这篇文章主要介绍了解决vue数据不实时更新的问题(数据更改了,但数据不实时更新),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • vue+echarts定时重新绘制以达到刷新的动效问题

    vue+echarts定时重新绘制以达到刷新的动效问题

    这篇文章主要介绍了vue+echarts定时重新绘制以达到刷新的动效问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Vuex的actions属性的具体使用

    Vuex的actions属性的具体使用

    这篇文章主要介绍了Vuex的actions属性的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Vue3 Element Plus表格默认显示一行实例

    Vue3 Element Plus表格默认显示一行实例

    这篇文章主要介绍了Vue3 Element Plus表格默认显示一行实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-07-07

最新评论