【Vue.js 入门与实战】--动画-使用过渡名实现动画

简介: Vue中的动画的功能:淡入淡出,位置简单位移,透明的渐变

动画-使用过渡名实现动画

 

一、Vue中的动画

Vue中的动画的功能:

淡入淡出,位置简单位移,透明的渐变

 

为什么要有动画:

动画能够提高用户的体验,帮助用户更好的理解页面中的功能,本质目的不是为了效果好看,而是帮助用户理解页面功能

 

image.png

完整动画又进入把动画分成了进入和离开两个部分

进入时:

透明的0变为透明的1,进入之前状态透明的为0v-enter代表进入元素的起始状态,即初始样式,v-enter-to代表动画进入完成之后的结束状态,起始状态到结束状态中间有一段时间,时间段为v-enter-active,进入状态有v-enterv-enter-to两个时间点和一个时间段

 

离开时:

半场动画,分为即将离开之前的起始状态v-leave,离开之后的终止状态为v-learv-to,从起始到离开的时间段为v-leave-active

 

总结:

进入完成之后与即将离开之前状态是一致的,进入之前和离开之后两个状态也是较为相似,相似的可以写为一组

在进入/离开的过渡中,会有6class切换。

 

1.v-enter:定义进入过渡的开始状态。在元素被插入时生效,在下一个帧移除。

2.enter-active:定义过渡的状志。在元素整个过渡过程中作用,在元素被插人时生效,transition/animation完成之后移除。这个类可以被用来定义过渡的过程时间,延迟和曲线函数。

3.enter-to:2.1.8版及以上定义进入过渡的结東状态。在元素被插入一帧后生效(于此同时v-enter被删除),transition / animation 完成之后移除。

4.v-leave:定义离开过渡的开始状态,在离开过渡被触发时生效,在下一个帧移除。
     5.v-leave-active:
定义过渡的状态。在元素整个过渡过程中作用,在离开过渡被触发后立即生效, transition / animation 完成之后移除。这个类可以被用来定义过渡的过程时间,延迟和曲线函数。
     6.v-leave-to:2.1.8
版及以上定义离开过渡的结束状态。

在离开过渡被触发一帧后生效(于此同时v-leave被删除), transition / animation 完成之后移除。



对于这些在enter/leave 过渡中切换的类名,V- 是这些类名的前缀。使用<transition name= "my-transition">可以重置前缀,比如v-enter替换为my-transition-enter.

 

v-enter-active和v-leave-active可以控制进入离开过渡的不同阶段,在下面章节会有个示例说明。

 

 

二、Vue动画案例

1. 不使用动画

创建02.动画-不使用动画.Html

<!DOCTYPE html><html lang "en">

<head>

<meta charset="UPE-8">

<meta name="viewport" content="width=device-width,initial-scale=1.0"><meta   http-equiv="X-UA-Compatible" content="ie=edge">

<title>Document</title>

<script src= "./lib/vue-2.4.0.js"></script>

</head>

 

<body>

<div id="app">

//构建按钮,设置点击事件,点击false变为true

<input type="button" value="toggle" eclick="flag=!flag">

<!--需求: 点击按钮,让h3显示,再点击让h3隐藏-->

<h3 v-if=”flase”>这是一个H3</h3>

</div>

 

<script>

//创建vue实例,得到ViewModelvar

vm = new vue ({

el: 'app',

data: {

//在data上构建标识符,默认隐藏

Flag:false

},

methods: {}

});

</ script>

 

运行结果:

image.png

 

 

2. 过渡的类名实现动画

创建03.动画-使用过渡类名实现动画.html

<!DOCTYPE html><html lang "en">

<head>

<meta charset="UPE-8">

<meta name="viewport" content="width=device-width,initial-scale=1.0"><meta   http-equiv="X-UA-Compatible" content="ie=edge">

<title>Document</title>

<script src= "./lib/vue-2.4.0.js"></script>

 

//第二步:自定义构建两种样式来控制transistion内部的元素控制动画

<style>

/*v-enter【这是一个时间点】是进入之前,元素的起始状态,此时还没有开始进入*/

/*v-leave-to[这是一个时间点]是动画离开之后,离开的终止状态,此时,元素动画已经结束了*/

/*这是第一组*/

.v-enter ,

.v-leave-to{

Opacity:0;

}

/*第二组*/

*v-enter-active【入场动画的时间段】*/

/* v-leave-active【离场动画的时间段】*/

.v-enter-active,

.v-leave-active {

//设置动画耗费多少毫秒,控制哪些元素实现

Transition:all 0.4s ease;

}

</style>

 

 

</head>

<body>

<div id="app">

//构建按钮,设置点击事件,点击false变为true

<input type="button" value="toggle" eclick="flag=!flag">

<!--需求: 点击按钮,让h3显示,再点击让h3隐藏-->

 

//第一步:使用transition元素把需要被动画控制的元素包裹起来,transitionvue官方提供的元素

<transition>

<h3 v-if=”flase”>这是一个H3</h3>

</transition>

 

</div>

<script>

//创建vue实例,得到ViewModelvar

vm = new vue ({

el: 'app',

data: {

//在data上构建标识符,默认隐藏

 

Flag:false

},

methods: {}

});

</script>

 

运行结果:

image.png

 

 

动画是渐渐的进入和离开的样式

可以在进入之前添加位移

<style>

.v-enter ,

.v-leave-to{

Opacity:0;

Transform:translateX(150px);

}

</style>

 

运行结果:

image.png

进入离开时后位置移动。

 

总结:

过渡类型实现动画写出两组类即可

 

 

 

 

 

相关文章
|
6月前
|
人工智能 自然语言处理 JavaScript
通义灵码2.5实战评测:Vue.js贪吃蛇游戏一键生成
通义灵码基于自然语言需求,快速生成完整Vue组件。例如,用Vue 2和JavaScript实现贪吃蛇游戏:包含键盘控制、得分系统、游戏结束判定与Canvas动态渲染。AI生成的代码符合规范,支持响应式数据与事件监听,还能进阶优化(如增加启停按钮、速度随分数提升)。传统需1小时的工作量,使用通义灵码仅10分钟完成,大幅提升开发效率。操作简单:安装插件、输入需求、运行项目即可实现功能。
377 4
 通义灵码2.5实战评测:Vue.js贪吃蛇游戏一键生成
|
2月前
|
JavaScript 前端开发 安全
【逆向】Python 调用 JS 代码实战:使用 pyexecjs 与 Node.js 无缝衔接
本文介绍了如何使用 Python 的轻量级库 `pyexecjs` 调用 JavaScript 代码,并结合 Node.js 实现完整的执行流程。内容涵盖环境搭建、基本使用、常见问题解决方案及爬虫逆向分析中的实战技巧,帮助开发者在 Python 中高效处理 JS 逻辑。
|
4月前
|
JavaScript 前端开发 算法
流量分发代码实战|学会用JS控制用户访问路径
流量分发工具(Traffic Distributor),又称跳转器或负载均衡器,可通过JavaScript按预设规则将用户随机引导至不同网站,适用于SEO优化、广告投放、A/B测试等场景。本文分享一段不到百行的JS代码,实现智能、隐蔽的流量控制,并附完整示例与算法解析。
144 1
|
6月前
|
JavaScript API 容器
Vue 3 中的 nextTick 使用详解与实战案例
Vue 3 中的 nextTick 使用详解与实战案例 在 Vue 3 的日常开发中,我们经常需要在数据变化后等待 DOM 更新完成再执行某些操作。此时,nextTick 就成了一个不可或缺的工具。本文将介绍 nextTick 的基本用法,并通过三个实战案例,展示它在表单验证、弹窗动画、自动聚焦等场景中的实际应用。
592 17
|
8月前
|
JSON JavaScript 前端开发
菜鸟之路Day23一一JavaScript 入门
本文介绍了 JavaScript 的基础内容,包括 JS 的引入方式、基础语法、数据类型、运算符、类型转换、函数、对象(如 Array、String、自定义对象、JSON、BOM 和 DOM)、事件监听,以及 Vue 框架的初步使用。重点讲解了内部和外部脚本的引入、变量声明(var、let、const)、常见输出语句、数组与字符串的操作方法、DOM 操作及事件绑定,并通过实例展示了 Vue 的双向数据绑定和常用指令(v-bind、v-model、v-on、v-if、v-for 等)。
223 7
|
8月前
|
监控 JavaScript 前端开发
MutationObserver详解+案例——深入理解 JavaScript 中的 MutationObserver:原理与实战案例
MutationObserver 是一个非常强大的 API,提供了一种高效、灵活的方式来监听和响应 DOM 变化。它解决了传统 DOM 事件监听器的诸多局限性,通过异步、批量的方式处理 DOM 变化,大大提高了性能和效率。在实际开发中,合理使用 MutationObserver 可以帮助我们更好地控制 DOM 操作,提高代码的健壮性和可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
MutationObserver详解+案例——深入理解 JavaScript 中的 MutationObserver:原理与实战案例
|
监控 安全 中间件
Next.js 实战 (十):中间件的魅力,打造更快更安全的应用
这篇文章介绍了什么是Next.js中的中间件以及其应用场景。中间件可以用于处理每个传入请求,比如实现日志记录、身份验证、重定向、CORS配置等功能。文章还提供了一个身份验证中间件的示例代码,以及如何使用限流中间件来限制同一IP地址的请求次数。中间件相当于一个构建模块,能够简化HTTP请求的预处理和后处理,提高代码的可维护性,有助于创建快速、安全和用户友好的Web体验。
259 0
Next.js 实战 (十):中间件的魅力,打造更快更安全的应用
|
中间件 API
Next.js 实战 (八):使用 Lodash 打包构建产生的“坑”?
这篇文章介绍了作者在使用Nextjs15进行项目开发时遇到的部署问题。在部署过程中,作者遇到了打包构建时的一系列报错,报错内容涉及动态代码评估在Edge运行时不被允许等问题。经过一天的尝试和调整,作者最终删除了lodash-es库,并将radash的部分源码复制到本地,解决了打包报错的问题。文章最后提供了项目的线上预览地址,并欢迎读者留言讨论更好的解决方案。
280 0
Next.js 实战 (八):使用 Lodash 打包构建产生的“坑”?
|
设计模式 数据安全/隐私保护
Next.js 实战 (七):浅谈 Layout 布局的嵌套设计模式
这篇文章介绍了在Next.js框架下,如何处理中后台管理系统中特殊页面(如登录页)不包裹根布局(RootLayout)的问题。作者指出Next.js的设计理念是通过布局的嵌套来创建复杂的页面结构,这虽然保持了代码的整洁和可维护性,但对于特殊页面来说,却造成了不必要的布局包裹。文章提出了一个解决方案,即通过判断页面的skipGlobalLayout属性来决定是否包含RootLayout,从而实现特殊页面不包裹根布局的目标。
372 0
Next.js 实战 (七):浅谈 Layout 布局的嵌套设计模式
|
JavaScript 前端开发 API
Next.js 实战 (六):如何实现文件本地上传
这篇文章介绍了在Next.js中如何实现文件上传到本地的方法。文章首先提到Next.js官方文档中没有提供文件上传的实例代码,因此开发者需要自行实现,通常有两种思路:使用Node.js原生上传或使用第三方插件如multer。接着,文章选择了使用Node.js原生上传的方式来讲解实现过程,包括如何通过哈希值命名文件、上传到指定目录以及如何分类文件夹。然后,文章展示了具体的实现步骤,包括编写代码来处理文件上传,并给出了代码示例。最后,文章通过一个效果演示说明了如何通过postman模拟上传文件,并展示了上传后的文件夹结构。
335 0
Next.js 实战 (六):如何实现文件本地上传