18 Vue 在Vue中使用 animate.css 库实现 toggle效果

一、引入css3 中的keyframe  bounce-in 看效果

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>Title</title>
		<script src="../vue.js"></script>
		<!-- 样式一定要写上,不然后没有动画效果 -->
		<style >
			@keyframes bounce-in{
				0%{
					transform: scale(0);
				}
				50%{
					transform: scale(1.5);
				}
				100%{
					transform: scale(1);
				}
			}
			.fade-enter-active{
				transform-origin: left center;
				animation: bounce-in 1s;
			}

			.fade-leave-active{
				transform-origin: left center;
				animation: bounce-in 1s reverse;
			}
		</style>
	</head>
	<body>
		<div id="app">
			<!-- 实现动画需要加入 transition -->
			<transition name="fade">
				<!-- vue 的动画是通过 向某些标签上增加样式来实现的动画效果 -->
				<div v-show="show">hello world</div>
			</transition>
			<!-- 实现点击change 隐藏和显示 hello world的功能  -->
			<button @click="handleBtnClick">toggle</button>
		</div>

		<script type="text/javascript">
			
			var vm = new Vue({
				el: "#app",
				data:{
					show: true
				},
				methods:{
					handleBtnClick:function() {
						this.show = !this.show
					}
				}
			})
		</script>

	</body>
</html>

看效果会先放大一下,再缩小

二、引入animate.css 样式库文件,使用已有的效果,就简单很多了。

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>Vue中的使用animate.css库</title>
		<script src="../vue.js"></script>
		<!-- 引入animate.css-->
		<link rel="stylesheet" type="text/css" href="https://unpkg.com/animate.css@3.5.2/animate.min.css">
		
	</head>
	<body>
		<div id="app">
			<!-- 实现动画需要加入 transition -->
			<!-- 自己定义active和leave样式,而不使用默认的样式 时需要指定-->
			<transition 
			name="fade"
			enter-active-class="animated swing"
			leave-active-class="animated shake"
			>
				<!-- vue 的动画是通过 向某些标签上增加样式来实现的动画效果 -->
				<div v-show="show">hello world</div>
			</transition>
			<!-- 实现点击change 隐藏和显示 hello world的功能  -->
			<button @click="handleBtnClick">toggle</button>
		</div>

		<script type="text/javascript">
			
			var vm = new Vue({
				el: "#app",
				data:{
					show: true
				},
				methods:{
					handleBtnClick:function() {
						this.show = !this.show
					}
				}
			})
		</script>

	</body>
</html>

 

在执行后,会有动画效果。 

三、 增加appear 属性,在进入页面时就有动画效果。代码如下

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>Vue中的使用过渡和动画</title>
		<script src="../vue.js"></script>
		<!-- 引入animate.css-->
		<link rel="stylesheet" type="text/css" href="https://unpkg.com/animate.css@3.5.2/animate.min.css">
		
	</head>
	<body>
		<div id="app">
			<!-- 实现动画需要加入 transition -->
			<!-- 自己定义active和leave样式,而不使用默认的样式 时需要指定-->
			<!-- 增加了appear 属性,实现进入页面刷新时就显示动画效果 -->
			<transition 
			name="fade"
			appear
			enter-active-class="animated swing"
			leave-active-class="animated shake"
			appear-active-class="animated swing"
			>
				<!-- vue 的动画是通过 向某些标签上增加样式来实现的动画效果 -->
				<div v-show="show">hello world</div>
			</transition>
			<!-- 实现点击change 隐藏和显示 hello world的功能  -->
			<button @click="handleBtnClick">toggle</button>
		</div>

		<script type="text/javascript">
			
			var vm = new Vue({
				el: "#app",
				data:{
					show: true
				},
				methods:{
					handleBtnClick:function() {
						this.show = !this.show
					}
				}
			})
		</script>

	</body>
</html>

四、手工设置添加样式和animate.css样式动画一起作用,实现过渡效果

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>Vue中的使用过渡和动画</title>
		<script src="../vue.js"></script>
		<!-- 引入animate.css-->
		<link rel="stylesheet" type="text/css" href="https://unpkg.com/animate.css@3.5.2/animate.min.css">
		<style>
			.fade-enter,.fade-leave-to{
				opacity: 0;
			}
			.fade-enter-active,
			.fade-leave-active{
				transition: opacity 3s;
			}
		</style>
	</head>
	<body>
		<div id="app">
			<!-- 实现动画需要加入 transition -->
			<!-- 自己定义active和leave样式,而不使用默认的样式 时需要指定-->
			<!-- 增加了appear 属性,实现进入页面刷新时就显示动画效果 -->
			<transition 
			:duration = '{enter:5000,leave:10000}'
			name="fade"
			appear
			enter-active-class="animated swing fade-enter-active"
			leave-active-class="animated shake fade-leave-active"
			appear-active-class="animated swing "
			>
				<!-- vue 的动画是通过 向某些标签上增加样式来实现的动画效果 -->
				<div v-show="show">hello world</div>
			</transition>
			<!-- 实现点击change 隐藏和显示 hello world的功能  -->
			<button @click="handleBtnClick">toggle</button>
		</div>

		<script type="text/javascript">
			
			var vm = new Vue({
				el: "#app",
				data:{
					show: true
				},
				methods:{
					handleBtnClick:function() {
						this.show = !this.show
					}
				}
			})
		</script>

	</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值