Vue动画的使用

本文详细介绍了Vue中如何实现动画,包括使用过渡类名、animate.css库、钩子函数以及transition-group元素。通过实例代码展示了动画在提高用户体验方面的应用,如淡入淡出、位移效果以及半场动画等。
摘要由CSDN通过智能技术生成

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

 

使用过渡类名实现动画

动画进入:

  • 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元素都用<transition>进行了包裹,那这两个DOM元素就都具备了v-中所定义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值