天天看点

Vue.js——过渡&动画效果

基本格式

HTML部分

<transition name='name'>
   <div></div>
</transition>
           

样式部分

Vue.js提供了6个class来实现过渡效果

1.进入类

v-enter                        进入过渡的开始状态
v-enter-active                 进入过渡的激活状态
v-enter-to                     进入过渡的结束状态
           

2.离开类

v-leave                       离开过渡的开始状态
v-leave-active                离开过渡的激活状态
v-leave-to                    离开过渡的结束状态
           

注:类选择器中v是指transition中的name属性的值

图片淡出demo

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>index</title>
	<script src="vue.js"></script>
	<style>
		*{
			font-family: 微软雅黑;
			padding:0px;
			margin:0px;
		}
		//设置过渡进入激活和离开激活的动画效果
		 .fade-enter-active, .fade-leave-active{
			transition:opacity 4s;
		}
		//设置动画进入时透明度为0,即4s的时间透明度从0到1
		.fade-enter{
			opacity:0;
		}
		//设置动画的离开时透明度,即4秒的时间透明度从1到0
	   .fade-leave-to{
			opacity:0;
		}
		.img{
			width:320px;
			height:168px;
			position:absolute;
			top:50%;
			left:50%;
			margin-left:-160px;
			margin-top:-84px;
			box-shadow:0 4px 8px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
		}
		.img img{
			display:block;
			width:320px;
			height:168px;
		}
		.img:hover{
			cursor:pointer;
		}
	</style>
</head>
<body>
	<div id="app">
		<transition name="fade">
			<div class="img" v-if="show" @click="show = !show">
				<img src="test.png"  alt="">
			</div>
		</transition>
	</div>		
</body>
<script>
	var vm = new  Vue({
		el:'#app',
		data:{
			show:true
		},
		methods:{

		}
	});
</script>
</html>	
           

运行效果

Vue.js——过渡&amp;动画效果

vue的过渡效果还可以结合第三方的库实现更多的效果

vue提供了6个专门用于设置过渡效果的class选择器名

<transition 
	before-enter-class=''
	enter-class=''
	after-enter-class=''
	before-leave-class=''
	leave-class=''
	after-leave-class=''
	>
</transtition>
           

PS:可以结合animate.css实现更多的过渡效果

vue 过渡的指令来实现过渡过程事件的监听

<transition
     @before-enter=''
     @enter=''
     @after-enter=''
     @before-leave=''
     @leave=''
     @after-leave=''
     >
    </transtion>
           
Vue.js——过渡&amp;动画效果