初识 Vue(24)---(Vue 中同时使用过渡和动画)

简介: Vue 中同时使用过渡和动画在上篇博客 《Vue 中使用 animate.css 库》基础上开始这篇博客在上篇博客中,完成了 引入 animate.

Vue 中同时使用过渡和动画

在上篇博客 《Vue 中使用 animate.css 库》基础上开始这篇博客

在上篇博客中,完成了 引入 animate.css 库 且实现动画的效果,但发现,在刚开始时元素并没有动画效果

若想让元素刚开始时也具备动画效果,则

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Vue 中同时使用过渡和动画</title>
	<script src='./vue.js'></script>
	<link rel="stylesheet" href="../css/animate.css" />
	
</head>
<body>
	<div id ="root">
		<transition name="fade"
			appear
			enter-active-class="animated swing"
			leave-active-class="animated shake"
			appear-active-class="animated swing">
			<div v-if="show">hello world</div>
		</transition>

		<button @click="handleClick">切换</button>

	</div>
	<script>
		var vm = new Vue({
			el:'#root',
			data: {
				show:true
			},
			methods:{
				handleClick: function(){
					this.show = !this.show
				}
			}
		})
	</script>
</body>
</html>

在刚开始时就会有动画效果

输出:上下抖动---正常--- 左右抖动---消失---上下抖动---正常

                  

引入 animate.css 库 实质还是 @keyframe(CSS3) 的形式,如果想将其和  过渡效果 同时展现出来,则

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Vue 中同时使用过渡和动画</title>
	<script src='./vue.js'></script>
	<link rel="stylesheet" href="../css/animate.css" />
	<style>
		.fade-enter,
		.fade-leave-to{
			opacity: 0;
		}
		
		.fade-enter-active,
		.fade-leave-active{
			transition: opacity 3s;
		}
	</style>
</head>
<body>
	<div id ="root">
		<transition name="fade"
			appear
			enter-active-class="animated swing fade-enter-active"
			leave-active-class="animated shake fade-leave-active"
			appear-active-class="animated swing">
			<div v-if="show">hello world</div>
		</transition>

		<button @click="handleClick">切换</button>

	</div>
	<script>
		var vm = new Vue({
			el:'#root',
			data: {
				show:true
			},
			methods:{
				handleClick: function(){
					this.show = !this.show
				}
			}
		})
	</script>
</body>
</html>

输出:上下抖动---正常--- 左右抖动---(逐渐)消失---上下抖动---(逐渐)正常

                  

但有个问题,设置 transition: opacity 3s;  是3秒;但知 swing 和 shake 都是 1秒;会导致冲突,则添加 type="transition",以较长的时间的时长为准

<div id ="root">
		
		<transition 
			type="transition"
			name="fade"
			appear
			enter-active-class="animated swing fade-enter-active"
			leave-active-class="animated shake fade-leave-active"
			appear-active-class="animated swing">
			<div v-if="show">hello world</div>
		</transition>

还可以自定义播放时长:  :duration="5000"    5秒

<div id ="root">
		
		<transition 
			:duration="5000"  
			name="fade"
			appear
			enter-active-class="animated swing fade-enter-active"
			leave-active-class="animated shake fade-leave-active"
			appear-active-class="animated swing">
			<div v-if="show">hello world</div>
		</transition>

复杂一些::duration="{enter:5000,leave:10000}"    入场5秒 ,离厂10秒

目录
相关文章
|
1天前
|
存储 JavaScript 数据安全/隐私保护
vue实战——登录【详解】(含自适配全屏背景,记住账号--支持多账号,显隐密码切换,登录状态保持)
vue实战——登录【详解】(含自适配全屏背景,记住账号--支持多账号,显隐密码切换,登录状态保持)
9 1
|
1天前
|
JavaScript
vue实战——404页面模板001——男女手电筒动画
vue实战——404页面模板001——男女手电筒动画
8 1
|
1天前
|
JavaScript
Base64如何切割后面的内容,如何提取data:image/png;base64,之后的内容,Vue中.split中截取的数组如何使用数组进行获取
Base64如何切割后面的内容,如何提取data:image/png;base64,之后的内容,Vue中.split中截取的数组如何使用数组进行获取
|
1天前
|
JSON JavaScript 前端开发
vue实战——登录过期【详解】
vue实战——登录过期【详解】
9 0
|
1天前
|
JavaScript 数据安全/隐私保护
vue实战——路由访问权限【详解】
vue实战——路由访问权限【详解】
6 0
|
1天前
|
存储 JavaScript
vue实战——登出【详解】
vue实战——登出【详解】
5 0
|
1天前
|
JavaScript
vue 在线聊天实战范例(含选择发送表情、图片、视频、音频,自定义右键快捷菜单,一键复制,左右聊天气泡)
vue 在线聊天实战范例(含选择发送表情、图片、视频、音频,自定义右键快捷菜单,一键复制,左右聊天气泡)
12 0
|
1天前
|
JavaScript
vue 组件封装 -- 添加【呼吸】动画效果(两种: 淡入>>淡入,淡入>>淡出>>淡入)
vue 组件封装 -- 添加【呼吸】动画效果(两种: 淡入>>淡入,淡入>>淡出>>淡入)
5 0
|
前端开发 内存技术
Vue_同时使用过渡和动画
在上一节我们用animate动画库,在刷新页面时没有动画 如何解决第一次就显示动画内容呢? 在transform 上加上appear 和appear-active-class <transition name='fade' appear enter-active-class='animate.
1541 0
|
2天前
|
JavaScript
vue 监听 sessionStorage 中值的变化
vue 监听 sessionStorage 中值的变化
11 1