首页 > 其他分享 >Vue2 动画与过渡

Vue2 动画与过渡

时间:2022-10-03 13:33:31浏览次数:88  
标签:opacity 动画 translateY transform leave Vue2 过渡 hello

概述

Vue 为我们优化了 CSS 动画在 Vue 中的使用,帮助我们在使用动画的时候更加的得心应手。

使用 CSS 动画完成 Vue 动画

<template>
  <div id="app">
    <button @click="isShow = !isShow">进入/离开</button>
    <transition name="hello" appear>
      <h1 v-show="isShow">你好</h1>
    </transition>
  </div>
</template>

<script>
  export default {
    name: "App",
    data() {
      return {
        isShow: true
      }
    }
  }
</script>

<style scoped>
  h1 {
    background-color: pink;
  }

  .hello-enter-active {
    animation: brokyz 0.3s ease;
  }

  .hello-leave-active {
    animation: brokyz 0.3s ease reverse;
  }

  @keyframes brokyz {
    from {
      transform: translateY(10px);
			opacity: 0;
    }
    to {
      transform: translateY(0px);
			opacity: 1;
    }
  }
</style>

transition 标签

在 Vue 中,我们需要将需要添加动画效果的元素使用transition标签进行包裹。

name 属性:用于控制标签中元素所使用动画的名字。比如如果指定 name="hello",那么就会使用.hello-xxxx这个定义过的动画。如果什么都不指定,那默认使用.v-xxxxx

appear 属性:用于控制页面加载时是否使用动画。如果为 true,则页面加载时使用动画。

transition 标签只能渲染一个元素,如果有其它元素需要写道一个 div 中,但是这样操作后就无法通过 v-if 等操作互斥显示。

transition-group 标签可以渲染多个标签,但是需要给指定 key 属性才可,否则报错。

Vue 的动画 CSS 名

  1. .v-enter-active:元素进入时的动画。
  2. .v-leave-active:元素离开时的动画。

使用 CSS 过渡完成 Vue 动画

<template>
  <div id="app">
    <button @click="isShow = !isShow">进入/离开</button>
    <transition name="hello" appear>
      <h1 v-show="isShow">你好</h1>
    </transition>
  </div>
</template>

<script>
  export default {
    name: "App",
    data() {
      return {
        isShow: true
      }
    }
  }
</script>

<style scoped>
  h1 {
    background-color: pink;
    border-radius: 5px;
		/* 添加过渡效果 */
    transition: 0.5s ease;
  }
  /* 进入的起点  */
  .hello-enter,
  .hello-leave-to {
    transform: translateY(20px);
    opacity: 0;
  }
  /* 进入的终点 */
  .hello-enter-to,
  .hello-leave {
    transform: translateY(0);
    opacity: 1;
  }

  /* 由于进入的起点和离开的终点相同,进入的终点和离开的起点相同所以合并到一起 */
  /* .hello-leave {
    transform: translateY(0);
		opacity: 1;
  }
  .hello-leave-to {
    transform: translateY(20px);
		opacity: 0;
  } */
</style>

使用第三方动画

推荐使用 animate.css

安装

npm i animate.css

在需要使用的组件中导入动画库

import 'animate.css'

之后根据,官网进行使用。如:

<transition-group
      appear
      name="animate__animated animate__bounce"
      enter-active-class="animate__fadeInRight"
      leave-active-class="animate__fadeOutLeft"
    >
</transition-group>

标签:opacity,动画,translateY,transform,leave,Vue2,过渡,hello
From: https://www.cnblogs.com/brokyz/p/16750402.html

相关文章

  • Vue2 指令操作
    概述指令是vue为开发者提供的模板语法,用于辅助开发者渲染页面的基本结构。vue中的指令按照不同的用途可分为如下6大类:内容渲染指令。属性绑定指令。事件绑定指......
  • Vue2 计算属性
    概述计算属性指的是通过一系列运算之后,最终得到一个属性值。间的的理解,当我们拥有一些数据时,我们需要将这些数据整合到一起,这时候计算属性就会完成这个操作,整合到一起的......
  • Vue2 props
    props概述我们的组件进行展示数据时,里面并不是都是写死的。我们需要在使用组件时,向组件内部传值,并展现我们需要的值。数组形式接收propsTestProps.vue<template> ......
  • 面试官:vue2和vue3的区别有哪些?
    一、Vue3与Vue2区别详述1.生命周期对于生命周期来说,整体上变化不大,只是大部分生命周期钩子名称上+“on”,功能上是类似的。不过有一点需要注意,Vue3在组合式API(Compo......
  • 场效应管和双极型晶体管的工作原理动画演示【视频笔记/截图】
     ......
  • #yyds干货盘点# 前端歌谣的刷题之路-第一百题-控制动画
    前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从......
  • manim 动画 svg 的准备工作
    1、选择图像后,选择窗口>图像描摹,注意将图像描摹成黑白色的,且大致内容为白色,仅边框为黑色。这样做的目的是尽可能简化svg,彩色svg会有更多的路径来显示颜色的变化。随后选择......
  • 圆形进度条动画
    圆形进度条动画圆形进度条动画您项目的圆形进度条动画片段。此代码段是使用HTML、CSS等创建的。#javascript#frontend#UI#pythondeveloper#datastructure#appdeve......
  • css动画
    一、CSS3过渡动画:div{width:100px;height:100px;background:yellow;transition:width2s;-moz-transition:width2s;/*Firefox4*/-webkit-transition:width......
  • 【尚硅谷】Vue2.x组件化编码学习笔记--渐进式的JS框架
    Vue组件化编码​​一、使用Vue-cli创建项目​​​​1.1说明​​​​1.2创建Vue项目​​​​1.2.1如何修改端口以及自动运行​​​​1.3Vue-cli创建的项目的目录结构​​......