摘要:既然我们知道了方法,我们就来给它加一个简单的动画。动画中还给我们提供了一些钩子函数,我们可以使用钩子函数构建动画。它会告知我们的动画完成,我们绑定了为,告诉组件跳过的检测,使用。
项目开发中动画有着很重要的作用,而且也是用到的地方非常多,例如:鼠标的进入离开,弹窗效果,组件的显示隐藏,列表的切换等等,可以说我们网页上的动画无处不在,也有人说了,这些东西也可以不使用动画。
对,你说的没错可以不使用,但是,首先你要说服你的产品经理咱能不能简单点,不搞这么多虚的来点实际的,说完之后我估计你们俩得立马干起来,其次,在你的网页上不使用动画不够逼格啊,而且咱们的网页也不够生动,没有活力,由此可见动画的不可或缺性。
上面只是开个玩笑,下面咱们进入主题,看看 Vue 中如何更好更简单的添加动画。
首先,Vue 在插入,修改或者移除 DOM 时,提供了多种不同的添加动画的方法,在 Vue 中我们使用
先来看看我们要实现一个什么样子的案例效果
图中的例子是一个非常常见的图片切换效果,不过在这个例子中我们只是单纯的实现图片的切换,看起来非常的生硬,没有任何的过渡效果,下面我们来给图片加一点动画的效果,让它看起来非常的有逼格。
CSS 过渡被
v-enter/v-leave:动画的第一帧
v-enter-acive/v-leave-active:动画运行的阶段,一些过渡属性会放置在这里,如:时间,延迟等
v-enter-to/v-leave-to:动画结束,最后一帧
官网上的一张图片非常友好的展示了这个切换的过程。
v- 是 Vue 中默认的类名前缀,我们在使用的过程中如果一直使用默认的命名方式的话,必然会导致一些冲突,所以 Vue 给我们提供了一个自定义命名的方案,我们只需要给
既然我们知道了方法,我们就来给它加一个简单的动画。
CSS 动画
与上面 CSS 过渡不同的是,我们这里说的 CSS 动画是利用 @keyframes 来创建与上面类似的动画效果。
使用第三方动画库Vue 中给我们提供了自定义 CSS 类名的方法,非常好的支持了与第三方动画库的结合。
enter-class / leave-class
enter-active-class / leave-active-class
enter-to-class / leave-to-class
上面两个动画都是我们自己动手写出来的,但是有些时候我们自己手写的并不是那么完美,或者项目的时间比较紧张,这个时候选择第三方库就是一个比较好的方案。我们继续利用 Animate.css 动画库修改我们上面的例子。
JavaScript 动画
Vue 中还给我们提供了一些钩子函数,我们可以使用 JavaScript 钩子函数构建动画。
所有钩子都会传入一个 el(元素)参数,enter/leave 函数还会传入一个 done 函数作为参数。它会告知我们的动画完成,我们绑定了 css 为 false,告诉组件跳过 CSS 的检测,使用 JavaScript。
我们结合 Velocity.js 动画,来修改完成我们的动画效果。
过渡模式
我们再来回头看看上面的例子,不管我们使用何种方式实现的动画,你会发现一个问题就是,动画在切换的时候两者(进入/离开)是同时进行的,有些时候,我们并不希望产生这种效果,对我们的动画效果非常的不友好,比如我们看看下面的这个例子。
很显然,这种是非常不好的效果,值得高兴的是 Vue 中给我们提供了一个解决方案-- 过渡模式,我们不需要增加额外的代码,只需要修改下特性即可。
Vue 给我们提供了两种过渡模式。
in-out:新元素先进行过渡,完成之后当前元素过渡离开。
out-in:当前元素先进行过渡,完成之后新元素过渡进入
过渡模式只会在相互切换的元素中才会生效
下面我们就用过渡模式修改我们上面的案例。
总结
Vue 给我们提供了比较直观灵活的 API,方便我们在项目中添加动画的效果。
Vue 中除了这些单元素的动画以外还提供了
文中如有不足之处,欢迎留言指正,如果本文对你有帮助,欢迎转发点赞。
关注微信公众号:六小登登。领取全套学习资源
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/99445.html
摘要:今天我们继续使用的撸我们的实战项目,只有在实战中我们才会领悟更多,光纸上谈兵然并卵,继上篇我们的一个案例引发的动态组件与全局事件绑定总结之后,今天来聊一聊我们如何在项目中使用递归组件。 今天我们继续使用 Vue 的撸我们的实战项目,只有在实战中我们才会领悟更多,光纸上谈兵然并卵,继上篇我们的《Vue一个案例引发的动态组件与全局事件绑定总结》 之后,今天来聊一聊我们如何在项目中使用递归组...
摘要:我们需要的最好效果肯定是当前的全局事件就在当前的组件下产生作用,当我们切换到其他组件时,事件自动删除,于是我可能想到的就是利用钩子函数去删除这个全局事件。 最近在自学 Vue 也了解了一些基本用法,也记录了一些笔记有兴趣的朋友可以去查看我的其他文章,技术这东西真的不能光靠看,看是没有的,你必须要动手实践,只有在实战项目中才能发现问题,才能发现我们没有掌握的知识点,然后发现问题解决问题,...
摘要:我们就来说说如何创建一个灵活的高复用的组件。在一款优秀的组件库中有这么两个组件与。什么是官方说法混入是一种分发组件中可复用功能的非常灵活的方式。对象可以包含实例中的所有选项,当组件使用对象时,对象中的所有选项将和组件中的选项进行合并。 我们都知道 Vue 采用的是一种组件化开发模式,组件在 Vue 中一个非常重要的核心概念。每个组件都是一个完整的实例,组件的创建,组件间的通讯,组件如何...
摘要:调用钩子渲染一波,然后把渲染后的元素赋值给并取代。大和小同为渐进式框架,提供了大量的对数据视图去进行处理。微信小程序我选择用原生主要是因为预览还要再开一个很不开心。 前言 刷了一波 react 文档,想找个东西练练手,在网上一看,什么实现一个 网易云、酷狗音乐、豆瓣 感觉找接口都够费神了,之前做过 vue 实现饿了么的一个系统,图片资源,mock 数据齐全,再加之样式写过了,所以直接就...
摘要:前言月份开始出没社区,现在差不多月了,按照工作的说法,就是差不多过了三个月的试用期,准备转正了一般来说,差不多到了转正的时候,会进行总结或者分享会议那么今天我就把看过的一些学习资源主要是博客,博文推荐分享给大家。 1.前言 6月份开始出没社区,现在差不多9月了,按照工作的说法,就是差不多过了三个月的试用期,准备转正了!一般来说,差不多到了转正的时候,会进行总结或者分享会议!那么今天我就...
阅读 1619·2021-11-11 10:59
阅读 2623·2021-09-04 16:40
阅读 3649·2021-09-04 16:40
阅读 2979·2021-07-30 15:30
阅读 1615·2021-07-26 22:03
阅读 3161·2019-08-30 13:20
阅读 2224·2019-08-29 18:31
阅读 438·2019-08-29 12:21