【Vue 快速入门系列】Vue中如何使用动画与过渡

news2024/11/30 12:47:57

文章目录

  • 前言
  • 一、回忆css3中的动画
  • 二、Vue中单标签使用动画
    • 1.默认使用方法
    • 2.自定义使用方法
  • 三、Vue中多标签实现动画效果
  • 四、使用第三方动画

前言

本篇博客将会介绍如何在Vue中使用动画效果。

一、回忆css3中的动画

定义一个动画:

定义一个动画名为atguigu
@keyframes atguigu {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(0px);
  }
}

使用动画

h1 {
  text-align: center;
  background-color: rgba(0, 217, 255, 0.897);
}
将动画使用到come类中
.come {
  animation: atguigu 0.5s linear;
}
将动画atguigu的相反使用到to类中
.to {
  animation: atguigu 0.5s linear reverse;
}

animation: name duration timing-function delay iteration-count direction fill-mode;
在这里插入图片描述

二、Vue中单标签使用动画

vue中定义动画使用,需要将响应标签放入标签 <transition></transition>中
若有多个元素需要过度,则需要使用:<transition-group>,且每个元素都要指定key值。

1.默认使用方法

这种方法只适用于一个插件只有一个动画效果,因为没有办法对动画进行区分

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

可以结合以下一个实例使用:

<template>
	<div>
		<button @click="isShow = !isShow">显示/隐藏</button>
		//appear 属性加上会在页面加载时执行动画
		<transition appear>
			<h1 v-show="isShow">你好啊!</h1>
		</transition>
	</div>
</template>

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

<style scoped>
	h1{
		background-color: orange;
	}
	//展示标签时激活
	.v-enter-active{
		animation: atguigu 0.5s linear;
	}
	//不展示标签时激活
	.v-leave-active{
		animation: atguigu 0.5s linear reverse;
	}

	@keyframes atguigu {
		from{
			transform: translateX(-100%);
		}
		to{
			transform: translateX(0px);
		}
	}
</style>

2.自定义使用方法

这种方法较为灵活,一个插件可以定义多个动画,并用定义的名字进行区分,用法如下:

<template>
	<div>
		<button @click="isShow = !isShow">显示/隐藏</button>
		//给标签指定一个名字
		<transition name="hello" appear>
			<h1 v-show="isShow">你好啊!</h1>
		</transition>
	</div>
</template>

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

<style scoped>
	h1{
		background-color: orange;
	}
	//这里的写法有所改变,应为.name-enter-activate.....
	.hello-enter-active{
		animation: atguigu 0.5s linear;
	}

	.hello-leave-active{
		animation: atguigu 0.5s linear reverse;
	}

	@keyframes atguigu {
		from{
			transform: translateX(-100%);
		}
		to{
			transform: translateX(0px);
		}
	}
</style>

三、Vue中多标签实现动画效果

上面介绍到的transition只能用于包裹一个标签,如果包裹多个标签的话就会报错。如果想要包裹多个标签可以使用transition-group。除了使用定义的动画,还可以使用过渡效果实现动画。
具体的使用方法如下:

<template>
	<div>
		<button @click="isShow = !isShow">显示/隐藏</button>
		//里面的两个h1均由动画效果
		<transition-group name="hello" appear>
			<h1 v-show="!isShow" key="1">你好啊!</h1>
			<h1 v-show="isShow" key="2">尚硅谷!</h1>
		</transition-group>
	</div>
</template>

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

<style scoped>
	h1{
		background-color: orange;
	}
	//Vue 会在指定的时期,将相应的动画效果展示出来,我们只用这样写即可。
	/* 进入的起点、离开的终点 */
	.hello-enter,.hello-leave-to{
		transform: translateX(-100%);
	}
	/* 进入的终点、离开的起点 */
	.hello-enter-to,.hello-leave{
		transform: translateX(0);
	}
	.hello-enter-active,.hello-leave-active{
		transition: 0.5s linear;
	}

</style>

四、使用第三方动画

市面上有许多优秀的动画库,我们在使用的时候只需进行一些简单的配置就可以使用。
下面有一个案例,是使用的animate.css动画库可以参考一下:
在这里插入图片描述

<template>
	<div>
		<button @click="isShow = !isShow">显示/隐藏</button>
		<transition-group 
			appear
			//下面三行为官网给出的配置
			name="animate__animated animate__bounce" 
			//这里就是显示组件跟隐藏组件时的动画
			//等号后面的东西直接去官网找自己想要的效果然后把名称复制上去即可
			enter-active-class="animate__swing"
			leave-active-class="animate__backOutUp"
		>
			<h1 v-show="!isShow" key="1">你好啊!</h1>
			<h1 v-show="isShow" key="2">尚硅谷!</h1>
		</transition-group>
	</div>
</template>

<script>
	import 'animate.css'
	export default {
		name:'Test',
		data() {
			return {
				isShow:true
			}
		},
	}
</script>

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

</style>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/87519.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WhatWeb 网站指纹识别软件

一、WhatWeb介绍 WhatWeb是一个开源的网站指纹识别软件。WhatWeb识别网站。它的目标是回答“那个网站是什么&#xff1f;”这个问题。WhatWeb可识别Web技术&#xff0c;包括内容管理系统&#xff08;CMS&#xff09;&#xff0c;博客平台&#xff0c;统计/分析包&#xff0c;Ja…

数据库原理及MySQL应用 | 数据库安全加固

数据库安全至关重要&#xff0c;可从多方面对数据库进行加固。 数据库安全怎么强调都不过分&#xff0c;可以从以下方面对数据库进行加固&#xff0c;让它更安全。 01、操作系统级别 可从以下七方面实现操作系统级别的安全加固。 1. 使用数据库专用服务器 使用专用的服务器…

《大数据导论》之数据生命周期和数据使用

1 数据生命周期 数据都存在一个生命周期&#xff0c;数据生命周期是指数据从创建、修改、发布利用到归档/销毁的整个过程。 1.1 数据生命周期管理工作包括以下几个方面&#xff1a; 分类&#xff1a;对数据进行自动分类&#xff0c;分离出有效的数据&#xff0c;对不同类型数据…

【MySQL】数据库基础知识汇总和增删改查操作

【MySQL】数据库基础知识汇总和增删查改操作 文章目录【MySQL】数据库基础知识汇总和增删查改操作1.数据库基础知识:2.对数据库的相关操作:2.1.显示当前所有的数据库, show databases;2.2.创建数据库, create database 数据库名;2.3.选中数据库, use 数据库名;2.4.删除数据库, …

基于腾讯云的艺术展小程序

第一章 项目背景 1.1 项目简介和应用现状 基于腾讯云的艺术展小程序&#xff1a;打造集美术鉴赏、艺术科普、当代优秀艺术品交流多功能融艺术性、知识性、趣味性、便利性于一体的一站式平台&#xff0c;为广大艺术爱好者提供优质服务&#xff01;小程序前后端完整&#xff0c…

特别活动丨HuggingFace工程师教你HF的正确打开方式

主题&#xff1a; HuggingFace的正确打开方式时间&#xff1a; 2022年12月15日&#xff08;周四&#xff09; 20:30-21:30由北京智源人工智能研究院主办的2022大模型创新论坛正如火如荼进行中&#xff0c;论坛包含训练营、峰会、创业大赛、黑客马拉松、闭门研讨会、创新应用榜单…

Python数据标准化

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 Python数据标准化 选择题 以下python代码结果错误的一项是? import pandas as pd import numpy as np from sklearn import preprocessing myDatapd.DataFrame({C1:[-1,-3,-5]}) p…

Moonbeam与Hyperlane之间的跨链互连合约

跨链通信除了作为Moonbeam的核心&#xff0c;也是为何另一个跨链协议Hyperlane部署于Moonbeam之上的原因。与先前介绍的跨链协议Axelar和LayerZero类似&#xff0c;Hyperlane允许开发人员编写可以跨区块链通信的智能合约&#xff0c;并让开发人员可以在Moonbeam上构建&#xff…

Linux中可用于监视磁盘使用情况的命令行实用程序

df命令 df是一个Linux命令行实用程序&#xff0c;用于监视Linux磁盘使用情况。df命令显示文件系统磁盘使用情况详细信息的完整摘要。通过-hT选项&#xff0c;它以易于阅读的格式显示有关文件系统、类型、磁盘总大小、已使用容量、剩余容量&#xff0c;使用率以及磁盘安装位置等…

基于DOA联合TDOA时间积累的二维GDOP仿真分析

up目录 一、理论基础 二、核心程序 三、测试结果 一、理论基础 无人机(UAV)因其体积小,灵活性高,成本低等优势得到快速发展并被广泛应用于军事战争,城市管理,民用,地质,抢险救灾等各个领域,与此同时,无人机定位技术也得到了深入研究,其中无线电探测与定位技术备受众多学者关…

liunx常用命令 适用了centos stream9

最近刚好需要重新再学习一下Linux然后开始学习大数据&#xff0c;就重新再温习一下Linux&#xff0c;然后需要把个人所有的编程环境和数据库变成linux版本&#xff0c;虽然一直以来都是用win系统做数据&#xff0c;但是liunx系统的安全和快速最近试了一下确实令我着迷。 liunx常…

[附源码]Nodejs计算机毕业设计基于web的教学资源管理系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

JSP ssh流量充值系统myeclipse开发oracle数据库MVC模式java编程计算机网页设计

一、源码特点 JSP ssh流量充值系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myec…

Spring MVC学习 | 使用域对象共享数据

文章目录一、回顾域对象二、在request域共享数据2.1 使用ServletAPI2.2 使用ModelAndView对象2.3 使用Model对象2.4 使用ModelMap对象2.5 使用Map集合2.6 Model、ModelMap和Map的关系2.7 使用域对象的底层原理三、在session域共享数据四、在application域共享数据学习视频&…

SpringBoot 替换 if 的参数校验

简单使用 Java API规范(JSR303)定义了Bean校验的标准validation-api&#xff0c;但没有提供实现。hibernate validation是对这个规范的实现&#xff0c;并增加了校验注解如Email、Length等。 Spring Validation是对hibernate validation的二次封装&#xff0c;用于支持spring…

Windows 禁用驱动签名方式

Windows 禁用驱动签名方式1. Windows开启测试模式2. 强制禁用2.1 Win7、Win82.2 Win103. 开机选用强制开启禁用签名模式3.1 Win72.3 Win8、Win10及Win113. 参考1. Windows开启测试模式 以管理员模式启动cmd&#xff0c;输入以下命令&#xff1a; 开启系统的测试模式 bcdedit …

来自飞桨社区开发者的礼物,《动手学深度学习》飞桨版上线!

近几年&#xff0c;各行各业已经逐渐开始基于AI技术启动企业智能化转型&#xff0c;AI技术的广泛应用催生了对AI应用人才的需求。如何不断夯实自身的AI技术能力&#xff0c;提升自己的职业竞争力&#xff1f;飞桨社区的开发者给大家带来一份神秘礼物。李沐老师的《动手学深度学…

web前端网页设计期末课程大作业:旅游网页主题网站设计——紫色的旅游开发景点网站静态模板(4页)HTML+CSS+JavaScript

&#x1f468;‍&#x1f393;学生HTML静态网页基础水平制作&#x1f469;‍&#x1f393;&#xff0c;页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码&#xff0c;这是一个不错的旅游网页制作&#xff0c;画面精明&#xff0c;排版整洁&#xff0c;内容…

股票l2接口的委托数据有什么作用?

股票l2接口的委托数据有什么作用&#xff1f; 委托队列返回数据&#xff1a;Level 2 行情将真实的每笔成交和成交量以明细数据呈现给用户。 用户可通过查看明细成交数据&#xff0c;判断出委托是属于大单、中单、小单并以此推断出是机构、大户、散户等所为&#xff0c;查明主…

国内外远程办公软件现状

我们说的远程办公通常指狭义上的远程办公&#xff0c;是指通过远程技术&#xff0c;或远程控制软件&#xff0c;对远程电脑进行操作办公&#xff0c;实现非本地办公&#xff0c;如在家办公、异地办公、移动办公等远程办公模式。这种技术的关键在于:穿透内网和远程控制的安全性。…