初识 Vue(22)---(Vue中CSS动画原理)

简介: Vue中CSS动画原理动画流程:(动画从无到有)1.在动画即将被执行的一瞬间,会往内部的 div 添加 两个 class 名字,分别是 fade-enter 和 fade-enter-active;2.

Vue中CSS动画原理

动画流程:(动画从无到有)

1.在动画即将被执行的一瞬间,会往内部的 div 添加 两个 class 名字,分别是 fade-enter 和 fade-enter-active;

2.当动画第一帧执行结束后,transition 标签分析知道这个 div 的动画效果,会在动画第二帧时做两件事:将之前添加的 fade-enter这个 class 标签去掉,再增加 fade-enter-to 这个标签;

3.动画继续执行,执行到结束的这一瞬间,Vue 会将之前添加的 fade-enter-active 和 fade-enter-to 去掉

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Vue中CSS动画原理</title>
	<script src='./vue.js'></script>
</head>
<body>
	<div id ="root">
		<transition name="fade">
			<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>

输出:点击 hello world 消失

  

以上述程序为例,当 div 被 transition 标签包裹时,会自动创建一个动画流程;在动画执行前,往 div 标签上添加 fade-enter 和 fade-enter-active 这两个 class 样式;

加入以下程序

<script src='./vue.js'></script>
	<style>
		.fade-enter{
			opacity: 0;
		}
		.fade-enter-active{
			transition: opacity 3s; 
		}
	</style>

输出:   经过 3S 浮现出来

fade-enter-active 在动画第一帧时才存在,执行到结束的这一瞬间  fade-enter-active 才会被去掉;故设置 transition:opacity;

对 opacity 进行 transition 监控,如果监控到 opacity 发生变化,则让其在 3 秒内缓慢变化;fade-enter 只在第一帧时存在,第二帧时就被移除。故结合二者来看,在第一帧时,画面处于隐藏状态(opacity:0),运行到第二帧时,fade-enter 被移除 ,这时,opacity 变为原来的默认值 1,画面要出现,fade-enter-active 中的 transition 监控到 opacity 发生变化,让其在 3 秒内完成变化,画面将在3 秒由无到有的浮现出来!

补充:fade-enter-active 和 fade-enter 中的前缀 fade 是 transition的 name 值,其默认值为 v

 

动画流程:(动画从有到无)

 

1.在动画即将被执行的一瞬间,会往内部的 div 添加 两个 class 名字,分别是 fade-leave 和 fade-leave-active;

2.当动画第一帧执行结束后,transition 标签分析知道这个 div 的动画效果,会在动画第二帧时做两件事:将之前添加的 fade-leave这个 class 标签去掉,再增加 fade-leave-to 这个标签;

3.动画继续执行,执行到结束的这一瞬间,Vue 会将之前添加的 fade-leave-active 和 fade-leave-to 去掉

 

再添加代码:

<style>
		.fade-enter{
			opacity: 0;
		}
		.fade-enter-active{
			transition: opacity 3s; 
		}
		.fade-leave-to{
			opacity: 0;
		}
		.fade-leave-active{
			transition: opacity 3s; 
		}
	</style>

输出:点击 3s 后隐藏,再点击 3s 后出现

          

fade-leave-active 在动画第一帧时才存在,执行到结束的这一瞬间  fade-leave-active 才会被去掉;故设置 transition:opacity;

对 opacity 进行 transition 监控,如果监控到 opacity 发生变化,则让其在 3 秒内缓慢变化;fade-leave-to 在第二帧时出现,最后时才被移除。故结合二者来看,在第一帧时,画面处于显示状态(opacity:1),运行到第二帧时,fade-leave 被移除 ,这时,opacity 变为 0,画面要隐藏,fade-leave-active 中的 transition 监控到 opacity 发生变化,让其在 3 秒内完成变化,画面将在3 秒由有到无的消失!

补充:v-if 和 v-show 都可以实现上述功能

Vue 中的 CSS 动画(过渡动画)实质:通过某一时刻自动的往一些标签上增加一些样式来实现的

 

目录
相关文章
|
1月前
|
前端开发 JavaScript
CSS 过渡和动画
CSS过渡和动画是用于为网页元素添加动态效果的两种重要技术
129 73
|
20天前
|
JavaScript 前端开发 算法
vue渲染页面的原理
vue渲染页面的原理
95 56
|
7天前
|
JavaScript 前端开发 UED
vue2和vue3的响应式原理有何不同?
大家好,我是V哥。本文详细对比了Vue 2与Vue 3的响应式原理:Vue 2基于`Object.defineProperty()`,适合小型项目但存在性能瓶颈;Vue 3采用`Proxy`,大幅优化初始化、更新性能及内存占用,更高效稳定。此外,我建议前端开发者关注鸿蒙趋势,2025年将是国产化替代关键期,推荐《鸿蒙 HarmonyOS 开发之路》卷1助你入行。老项目用Vue 2?不妨升级到Vue 3,提升用户体验!关注V哥爱编程,全栈开发轻松上手。
|
2月前
css3 svg制作404页面动画效果HTML源码
css3 svg制作404页面动画效果HTML源码
71 34
|
1月前
|
移动开发 JavaScript API
Vue Router 核心原理
Vue Router 是 Vue.js 的官方路由管理器,用于实现单页面应用(SPA)的路由功能。其核心原理包括路由配置、监听浏览器事件和组件渲染等。通过定义路径与组件的映射关系,Vue Router 将用户访问的路径与对应的组件关联,支持哈希和历史模式监听 URL 变化,确保页面导航时正确渲染组件。
|
2月前
jQuery+CSS3实现404背景游戏动画源码
jQuery+CSS3实现404背景游戏动画源码
63 22
|
3月前
|
Web App开发 移动开发 JavaScript
纯CSS3+SVG实现的节日庆祝五彩纸屑动画效果源码
这是一款基于纯CSS3+SVG实现的节日庆祝五彩纸屑动画效果源码。画面中左下角是一个圆锥形礼炮卡通效果,呈现出节日庆祝时礼花爆破、五彩纸屑纷飞的动画特效。整体动画效果采用纯css3+svg实现,没有引入任何外部图形或js脚本元素。建议使用支持HTML5与css3效果较好的火狐(Firefox)或谷歌(Chrome)等浏览器预览本源码。
82 6
|
4月前
|
前端开发 JavaScript UED
CSS滚动效果和视差滚动的原理、应用及其对用户体验的影响。从平滑滚动到元素跟随,再到滚动触发动画
本文探讨了CSS滚动效果和视差滚动的原理、应用及其对用户体验的影响。从平滑滚动到元素跟随,再到滚动触发动画,这些效果增强了页面的吸引力和互动性。视差滚动通过不同层次元素的差异化移动,增加了页面的深度感和沉浸感。文章还讨论了实现方法、性能优化及案例分析,旨在为设计师和开发者提供实用指导。
119 7
|
3月前
|
JavaScript
vue使用iconfont图标
vue使用iconfont图标
177 1
|
10天前
|
数据采集 资源调度 JavaScript
极致的灵活度满足工程美学:用Vue Flow绘制一个完美流程图
本文介绍了使用 Vue Flow 绘制流程图的方法与技巧。Vue Flow 是一个灵活强大的工具,适合自定义复杂的流程图。文章从环境要求(Node.js v20+ 和 Vue 3.3+)、基础入门案例、自定义功能(节点与连线的定制、事件处理)到实际案例全面解析其用法。重点强调了 Vue Flow 的高度灵活性,虽然预定义内容较少,但提供了丰富的 API 支持深度定制。同时,文中还分享了关于句柄(handles)的使用方法,以及如何解决官网复杂案例无法运行的问题。最后通过对比 mermaid,总结 Vue Flow 更适合需要高度自定义和复杂需求的场景,并附带多个相关技术博客链接供进一步学习。