简单谈谈vue的过渡动画(推荐)


Posted in Javascript onOctober 11, 2017

在vue中,实现过渡动画一般是下面这样:

<transition name="fade">
 <div></div>
</transition>

用一个transition对元素或者组件进行封装.

在过渡的时候,会有 4 个(CSS)类名在 enter/leave 的过渡中切换。

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

2.v-enter-active: 定义进入过渡的结束状态。在元素被插入时生效,在 transition/animation 完成之后移除。

3.v-leave: 定义离开过渡的开始状态。在离开过渡被触发时生效,在下一个帧移除。

4.v-leave-active: 定义离开过渡的结束状态。在离开过渡被触发时生效,在 transition/animation 完成之后移除。

上面是官方文档的原话,但是这4个类名如何运用呢?下面看个例子

<transition name="fold">
 <div v-show="show" class="example"></div>
</transition>

css:
.example {
 width: 100px;
 height: 100px;
 transform: translate3d(0, -100px, 0);
}
.fold-enter-active, .fold-leave-active {
 transition: all .5s;
}
.fold-enter, .fold-leave-active {
 transform: translate3d(0, 0, 0);
}

当show = true时:

这里的fold-enter,是在元素显示的一瞬间被加入,然后瞬间被移除,在上面的例子中,example这个块状元素本来因为有了transform: translate3d(0, -100px, 0)这个样式,所以被上移了100px,但是因为fold-enter,所以将example这个块状元素移到了原位,但是fold-enter因为瞬间就被移除掉了,所以这时候的元素的样式又变成了transform: translate3d(0, -100px, 0),但是这时候fold-enter-active这个样式就生效了,因为设置了transition: all .5s,所以元素会在0.5s的时间内上移100px,在过渡动画结束之后,fold-enter-active这个类马上被移除.

当show = false时:

example不会马上消失,这个时候fold-leave-active这个类就起作用了,example这时的位置是在-100px,fold-leave-active定义的是过渡的结束状态:transform: translate3d(0, 0, 0);,但是同时又设置了transition: all .5s,所以这时元素会在0.5s的时间内下移100px.之后fold-leave-active被移除.

官网的一张图

简单谈谈vue的过渡动画(推荐)

另外,还可以在动画中调用js钩子函数:

<transition
 v-on:before-enter="beforeEnter"
 v-on:enter="enter"
 v-on:after-enter="afterEnter"
 v-on:enter-cancelled="enterCancelled"
 v-on:before-leave="beforeLeave"
 v-on:leave="leave"
 v-on:after-leave="afterLeave"
 v-on:leave-cancelled="leaveCancelled"
>
</transition>

不过用的不多,可以在methods中定义这些方法.

以上这篇简单谈谈vue的过渡动画(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用Div仿showModalDialog模式菜单的效果的代码
Mar 05 Javascript
jquery中的sortable排序之后的保存状态的解决方法
Jan 28 Javascript
jQuery动态添加删除select项(实现代码)
Sep 03 Javascript
如何防止回车(enter)键提交表单
May 11 Javascript
js 通过html()及text()方法获取并设置p标签的显示值
May 14 Javascript
基于canvas实现的钟摆效果完整实例
Jan 26 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
Oct 25 Javascript
jQuery checkbox选中问题之prop与attr注意点分析
Nov 15 Javascript
详解Angular 自定义结构指令
Jun 21 Javascript
jQuery实现的文字逐行向上间歇滚动效果示例
Sep 06 jQuery
浅谈开发eslint规则
Oct 01 Javascript
如何实现js拖拽效果及原理解析
May 08 Javascript
Vue-router结合transition实现app前进后退动画切换效果的实例
Oct 11 #Javascript
jQuery实现的事件绑定功能基本示例
Oct 11 #jQuery
AngularJS中下拉框的高级用法示例
Oct 11 #Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
Oct 11 #Javascript
AngularJS中下拉框的基本用法示例
Oct 11 #Javascript
Node.js学习之TCP/IP数据通讯(实例讲解)
Oct 11 #Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
Oct 11 #Javascript
You might like
全国FM电台频率大全 - 16 河南省
2020/03/11 无线电
分享PHP入门的学习方法
2007/01/02 PHP
php表单转换textarea换行符的方法
2010/09/10 PHP
PHP通过加锁实现并发情况下抢码功能
2016/08/10 PHP
php排序算法实例分析
2016/10/17 PHP
Yii2框架实现数据库常用操作总结
2017/02/08 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
2020/11/10 PHP
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
2007/08/13 Javascript
常用的javascript function代码
2008/05/23 Javascript
jquery删除指定的html标签并保留标签内文本内容的方法
2014/04/02 Javascript
js实现按钮控制图片360度翻转特效的方法
2015/02/17 Javascript
jQuery实现固定在网页顶部的菜单效果代码
2015/09/02 Javascript
JavaScript Promise 用法
2016/06/14 Javascript
javascript动画之模拟拖拽效果篇
2016/09/26 Javascript
easyui tree带checkbox实现单选的简单实例
2016/11/07 Javascript
详解通过JSON数据使用VUE.JS
2017/05/26 Javascript
vue.js移动端tab组件的封装实践实例
2017/06/30 Javascript
vue-cli配置环境变量的方法
2018/07/09 Javascript
Vue.directive 实现元素scroll逻辑复用
2019/11/29 Javascript
[43:51]2014 DOTA2国际邀请赛中国区预选赛 Dream Times VS TongFu
2014/05/22 DOTA
在Python的Django框架下使用django-tagging的教程
2015/05/30 Python
python的re正则表达式实例代码
2018/01/24 Python
Python中安装easy_install的方法
2018/11/18 Python
python实现简单多人聊天室
2018/12/11 Python
python字典一键多值实例代码分享
2019/06/14 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
2020/02/07 Python
Django Channel实时推送与聊天的示例代码
2020/04/30 Python
基于python实现模拟数据结构模型
2020/06/12 Python
你的自行车健身专家:FaFit24
2016/11/16 全球购物
kmart凯马特官网:美国最大的打折零售商和全球最大的批发商之一
2016/11/17 全球购物
澳大利亚在线购买儿童玩具:Toy Universe
2017/12/28 全球购物
LACOSTE波兰官网:Polo衫、服装和鞋类
2020/09/29 全球购物
Linux管理员面试题 Linux admin interview questions
2016/07/08 面试题
2015年药店店长工作总结
2015/04/29 职场文书
2016大一新生入学教育心得体会
2016/01/23 职场文书
vue+echarts实现多条折线图
2022/03/21 Vue.js