Vue动画的使用

2023-10-27

动画的作用:提高用户的体验,帮助用户更好的理解页面中的功能。

 

使用过渡类名实现动画

动画进入:

  • v-enter:动画进入之前的初始状态

  • v-enter-to:动画进入之后的结束状态

  • v-enter-active:动画进入的时间段

PS:第一、第二个是时间点;第三个是时间段。

动画离开:

  • v-leave:动画离开之前的初始状态

  • v-leave-to:动画离开之后的结束状态

  • v-leave-active:动画离开的时间段

PS:第一、第二个是时间点;第三个是时间段。

 

举个栗子:通过Vue的过渡类名来实现

v-enter-tov-leave的状态是一样的。而且一般来说,v-enterv-leave-to的状态也是一致的。所以,我们可以把这四个状态写成两组。

现在我们来写一段代码使得点击按钮时,让div显示/隐藏。

 

1.如果我们不使用动画,应该是这样做:

<!DOCTYPE html>
<html>
<head>
	<meta charset = "UTF-8">
	<link rel="stylesheet" type="text/css" href="index.css">
   <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   <script src="https://cdn.staticfile.org/vue-resource/1.5.1/vue-resource.min.js"></script>
</head>
<body>
	<div id="app">
		<input type="button" value="toggle" @click="flag=!flag">
		<!-- 需求:点击按钮,让h3显示,再点击,让h3隐藏-->
		<h3 v-if="flag">this is the h3</h3>
	</div>

	<script src="index.js"></script>
</body>
</html>
new Vue({
	el:'#app',
	data:{
		flag:false
	},
	methods:{}
})

 

2.使用动画:通过Vue的过渡类名来实现

现在,我们加淡入淡出的动画,让div显示和隐藏。

<!DOCTYPE html>
<html>
<head>
	<meta charset = "UTF-8">
	<link rel="stylesheet" type="text/css" href="index.css">
   <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   <script src="https://cdn.staticfile.org/vue-resource/1.5.1/vue-resource.min.js"></script>
</head>
<body>
	<div id="app">
		<input type="button" value="toggle" @click="flag=!flag">
		<!-- 需求:点击按钮,让h3显示,再点击,让h3隐藏-->
		<!-- 使用transition元素,把需要被动画控制的元素,包裹起来-->
		<!-- transition元素是VUE官方提供的-->
	<transition>
		<h3 v-if="flag">this is the h3</h3>
	</transition>
	</div>

	<script src="index.js"></script>
</body>
</html>
#app {
	width: 800px;
	margin: 20px auto;
}

.v-enter,
.v-leave-to{
	opacity: 0;
}

.v-enter-active,
.v-leave-active{
	transition: all 1s ease;
}
new Vue({
	el:'#app',
	data:{
		flag:false
	},
	methods:{}
})

我们使用vue提供的<transition>标签把需要被动画控制的元素,包裹起来;然后使用.v-enter.v-leave-to等进行动画的定义

 

 

3、再加一个tramsform属性进行位移

我们在上方代码的基础之上,加一个tramsform属性,让动画有一个位移的效果。

#app {
	width: 800px;
	margin: 20px auto;
}

.v-enter,
.v-leave-to{
	opacity: 0;
	transform: translateX(80px);/* 表示一开始让DOM元素处于靠右80px的位置*/
}

.v-enter-active,
.v-leave-active{
	transition: all 1s ease;
}

 

 

 

 

修改过渡类名的前缀

在上一小段中,.v-enter.v-leave-to这些过渡类名都是以v-开头的。这样做,会有一个局限性:假设有两个DOM元素都用<transiti

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue动画的使用 的相关文章

  • 用Python爬取某东商品信息并可视化

    有态度地学习 张凡幸 人工智能初阶小白 初学Python 喜欢数据分析 爬虫相关内容 微信公众号 学习随笔 ID walker398 对于Ajax加载的网页已经分析了好几回 这回来说说利用selenium自动化获取网页信息 通常对于异步加载
  • SQL语句高级查询一、二(刚入门 的也能看懂)

    高级查询 一 一 where条件表达式 SELECT column1 column2 FROM tablename WHERE condition name 张三 name like 三 新建一张表进行测试 1 查找语文成绩大于80分的学生
  • vc++6.0 调试问题【no matching symbolic information found.】

    最近重新整理C的基础知识 于是便用起了vc 6 0调试代码 结果就遇到了如标题所属问题 之前很少用vc 6 0 所以对我来说 我算个新手吧 相信很多新手都遇到跟我也遇到过同样的问题 下面我将我分 1 测试代码 2 直接运行 3 调试 4 贴
  • 【python】Ray集群搭建

    目录 准备条件 基于linux环境 Ray简介 Ray的优势 Ray工作原理 安装Ray 在所有节点上安装 部署Ray集群 1 部署head节点 2 部署worker节点 例子 python Ray集群 参考文献 准备条件 基于linux环
  • Arduino通过继电器控制电机(5V小马达)ESP8266-12F同理(小白初学)

    用Arduino ESP8266 12F控制电机 一 实验环境 IDE Arduino 材料 Arduino UNO ESP82266 12F 4 5V电池盒子 继电器 6脚 5V电机一个 5V小马达 面包板 杜邦线若干 二 接法 参照37

随机推荐