09《Vue 入门教程》Vue 过渡 & 动画

09《Vue 入门教程》Vue 过渡 & 动画,第1张

本章节我们主要介绍 Vue.js 的过渡效果与动画效果。包括如何编写自定义 CSS 动画、如何配合第三方 CSS 动画库、过渡钩子函数的使用、如何使用第三方 JavaScript 动画库。本小节的内容相对之前有些难度,同学们在阅读一遍之后如果不能完全掌握,建议反复阅读,并把本小节的所有案例自己实现一遍,相信通过多次的练习一定可以掌握。

Vue 在插入、更新或者移除 DOM 时,提供多种不同方式的应用过渡效果。 包括以下工具: 1、在 CSS 过渡和动画中自动应用 class; 2、配合使用第三方 CSS 动画库,如 Animate.css; 3、在过渡钩子函数中使用 JavaScript 直接 *** 作 DOM; 4、配合使用第三方 JavaScript 动画库,如 Velocity.js。

使用 transition 组件包裹需要使用过渡效果的 DOM 元素。例如:

接下来让我们先看一个淡入淡出效果的实现代码:

实例演示

运行案例点击 "运行案例" 可查看在线运行效果

代码解释:

那么,transition 组件是如何做到这样的过渡效果的呢?

我想,同学们肯定猜想到当元素切换状态的时候,我们定义的样式会作用于标签元素

。那么,到底是不是这样呢?

打开控制台,检索到

标签上,我们可以清晰地看到:

实际上 Vue 在元素显示与隐藏的过渡中,提供了 6 个 class 来切换:

对于这些在过渡中切换的类名来说,如果你使用一个没有名字的 ,则 v- 是这些类名的默认前缀。如果你使用了 ,那么 v 会替换为 test-transition。例如:test-transition-enter、test-transition-enter-active、test-transition-leave…

在日常开发中,我们经常会使用 CSS 过渡来实现一些简单的动画效果。接下来我们用一个示例来学习如何使用:

实例演示

"运行案例" 可查看在线运行效果

代码解释:

同样,我们可以使用 CSS 动画来实现元素的过渡效果。CSS 动画用法类似 CSS 过渡,在过渡的不同阶段对应的 Class 会作用于元素。但是在动画中 v-enter 类名在节点插入 DOM 后不会立即删除,而是在 animationend 事件触发时删除。 相信同学们在日常业务开发中一定使用过 Dialog,接下来我们就使用 CSS 动画来实现它的过渡效果:

实例演示

"运行案例" 可查看在线运行效果

代码解释:

在之前的两个案例中,我们通过给 transition 设置 name 属性来指定元素在不同阶段的样式类名,但有时候希望使用自定义的过渡类名,我们可以通过给 transition 设置以下属性来达到需求:

自定义过渡的类名优先级高于普通的类名,这样就能很好地与第三方(如:animate.css)的动画库结合使用。

在很多情况下,Vue 可以自动得出过渡效果的完成时机。默认情况下,Vue 会等待其在过渡效果的根元素的第一个 transitionend 或 animationend 事件。然而也可以不这样设定 —— 比如,我们可以拥有一个精心编排的一系列过渡效果,其中一些嵌套的内部元素相比于过渡效果的根元素有延迟的或更长的过渡效果。

在这种情况下你可以用 组件上的 duration 属性定制一个显性的过渡持续时间 (以毫秒计):

你也可以定制进入和移出的持续时间:

transition 组件在过渡的不同阶段会触发相应的钩子函数:

这些钩子函数可以结合 CSS transitions/animations 使用,也可以单独使用。

当只用 JavaScript 过渡的时候,在 enter 和 leave 中必须使用 done 进行回调。否则,它们将被同步调用,过渡会立即完成。

推荐对于仅使用 JavaScript 过渡的元素添加v-bind:css="false" ,Vue 会跳过 CSS 的检测。这也可以避免过渡过程中 CSS 的影响。

接下来我们来看一个使用钩子函数和 Velocity.js 实现过渡动画的例子:

实例演示

"运行案例" 可查看在线运行效果

代码解释:

有时候我们希望给元素设置初始渲染的过渡效果,可以通过给 transition 设置 appear 的attribute :

这里默认和进入 / 离开过渡一样,同样也可以自定义 CSS 类名:

同样地,可以使用自定义 JavaScript 钩子:

接下来我们看一个完整的示例:

实例演示

"运行案例" 可查看在线运行效果

代码解释:

本小节我们介绍了如何使用 transition 实现过渡和动画效果,主要包括以下知识点:

需求是有一些动态内容折叠起来的,点击后d开

js定时器的动画过渡暂不考虑,于是就想到transition过渡

一开始就想着用trasition动画过渡就搞定啦,试了一下后,发现有问题

折叠的元素的高度height必须得设置一个值才可以有过渡的效果,要不就过渡不了

折中一下,就用js动态获取子元素的高度,然后给值到折叠的元素上实现过渡了

不过需要注意的是,内容的元素,虽然平常是不显示,但是还是暂据文本流的空间,所以缩起来后,要设置{visibility:hidden}.

打开时再设置{visibility:visible}

过渡元素:周期表中从IIIB族到VIII族的元素。共有三个系列的元素(钪到镍、钇到钯和镧到铂),电子逐个填入他们的3d、4d和5d轨道。有时人们把过渡元素的范围扩大到包括镧系元素和锕系元素。因此有时也把铜族元素包括在过渡元素范围之内。锌族元素(IIB)在形成稳定配位化合物的能力上与过渡元素很相似,因此也有人建议把锌族元素归入过渡元素范围。各系列过渡元素的与阿兹半径自左而右缓慢递减,各族元素的半径自上而下略有增加,但不像主族元素增加的那样显著。过渡元素的特征性质有以下几点。

(1 ) 都是金属,具有熔点高、沸点高、硬度高、密度大等特性;并有金属管则及延展性、高导电性和导热性。例如钨和钽的通电分别是3410摄氏度和2996摄氏度。不同的过渡金属之间可以形成多种合金。

(2) 过渡元素中的d电子参与了化学键的形成,所以在它们的化合物中常表现出多种氧化态。最高氧化态从每行起始元素(钪、钇、镧)的+3增加到第六个元素(钌、锇)的+8。在过渡元素的每个竖列中,元素的最高氧化态一般体现在该列底部的元素中,例如铁、钌、锇这一列里,铁的最高氧化态是+6,而锇的则达到+8。

(3 ) 过渡元素具有能用于成键的空d轨道和较高的电荷/半径比,容易形成稳定的配位化合物,例如能形成Au(CN)2-配离子,可用于地品味金矿中回收金。此外,维生素B12是Co(III)的配合物,血红素是Fe(III)的配合物。过渡元素常用作催化剂。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/7979803.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-12
下一篇2023-04-12

发表评论

登录后才能评论

评论列表(0条)

    保存