简单谈谈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 相关文章推荐
一个轻量级的javascript库 pj介绍
Dec 19 Javascript
JS注册/移除事件处理程序(ExtJS应用程序设计实战)
May 07 Javascript
jQuery中removeProp()方法用法实例
Jan 05 Javascript
js完美解决IE6不支持position:fixed的bug
Apr 24 Javascript
JavaScript全屏和退出全屏事件总结(附代码)
Aug 17 Javascript
完美解决axios在ie下的兼容性问题
Mar 05 Javascript
Angular 实现输入框中显示文章标签的实例代码
Nov 07 Javascript
vscode下的vue文件格式化问题
Nov 28 Javascript
微信小程序 高德地图路线规划实现过程详解
Aug 05 Javascript
jquery实现购物车基本功能
Oct 25 jQuery
微信小程序 下拉刷新及上拉加载原理解析
Nov 06 Javascript
jQuery加PHP实现图片上传并提交的示例代码
Jul 16 jQuery
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
php中将数组转成字符串并保存到数据库中的函数代码
2013/09/29 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
2019/12/12 PHP
js获取图片大小的函数代码
2011/09/20 Javascript
JS中把字符转成ASCII值的函数示例代码
2013/11/21 Javascript
jQuery中(function($){})(jQuery)详解
2015/07/15 Javascript
jQuery垂直多级导航菜单代码分享
2015/08/18 Javascript
jQuery实现的鼠标滑过弹出放大图片特效
2016/01/08 Javascript
jQuery解析返回的xml和json方法详解
2017/01/05 Javascript
js前端导出Excel的方法
2017/11/01 Javascript
JS实现监控微信小程序的原理
2018/06/15 Javascript
vue+springboot实现项目的CORS跨域请求
2018/09/05 Javascript
在vue中封装的弹窗组件使用队列模式实现方法
2020/07/23 Javascript
node.js如何操作MySQL数据库
2020/10/29 Javascript
JavaScript中arguments的使用方法详解
2020/12/20 Javascript
Python Tkinter GUI编程入门介绍
2015/03/10 Python
Python下Fabric的简单部署方法
2015/07/14 Python
python制作一个桌面便签软件
2015/08/09 Python
Python实现简单字典树的方法
2016/04/29 Python
回调函数的意义以及python实现实例
2017/06/20 Python
python tkinter界面居中显示的方法
2018/10/11 Python
关于python之字典的嵌套,递归调用方法
2019/01/21 Python
详解重置Django migration的常见方式
2019/02/15 Python
Python使用Slider组件实现调整曲线参数功能示例
2019/09/06 Python
Python tkinter三种布局实例详解
2020/01/06 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
2020/06/28 Python
使用Keras建立模型并训练等一系列操作方式
2020/07/02 Python
python 录制系统声音的示例
2020/12/21 Python
打造经典复古风格的品牌:Alice + Olivia(爱丽丝+奥利维亚)
2016/09/07 全球购物
致200米运动员广播稿
2014/02/06 职场文书
学习方法演讲稿
2014/05/10 职场文书
乡党政领导班子群众路线教育实践活动个人对照检查材料
2014/09/20 职场文书
退休教师欢送会致辞
2015/07/31 职场文书
2016教师读书思廉心得体会
2016/01/23 职场文书
Pytorch中的数据集划分&正则化方法
2021/05/27 Python
详细聊聊浏览器是如何看闭包的
2021/11/11 Javascript
MySQL创建表操作命令分享
2022/03/25 MySQL