简单谈谈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 相关文章推荐
js打造数组转json函数
Jan 14 Javascript
详解Jquery实现ready和bind事件
Apr 14 Javascript
js实现当鼠标移到表格上时显示这一格全部内容的代码
Jun 12 Javascript
Json解析的方法小结
Jun 22 Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
Dec 27 Javascript
整理一些最近经常遇到的前端面试题
Apr 25 Javascript
vue2.0 兄弟组件(平级)通讯的实现代码
Jan 15 Javascript
浅谈React中的元素、组件、实例和节点
Feb 27 Javascript
React之PureComponent的使用作用
Jul 10 Javascript
jquery实现联想词搜索框和搜索结果分页的示例
Oct 10 jQuery
vue 实现 rem 布局或vw 布局的方法
Nov 13 Javascript
记录微信小程序 height: calc(xx - xx);无效问题
Dec 30 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
php页面缓存方法小结
2015/01/10 PHP
php中让人头疼的浮点数运算分析
2016/10/10 PHP
DWZ+ThinkPHP开发时遇到的问题分析
2016/12/12 PHP
js跨域问题之跨域iframe自适应大小实现代码
2010/07/17 Javascript
自己动手制作jquery插件之自动添加删除行的实现
2011/10/13 Javascript
批量修改标签css样式以input标签为例
2014/07/31 Javascript
cookie的secure属性详解
2015/04/08 Javascript
简介JavaScript中的setTime()方法的使用
2015/06/11 Javascript
js模仿java的Map集合详解
2016/01/06 Javascript
ReactNative-JS 调用原生方法实例代码
2016/10/08 Javascript
js正则表达式注册页面表单验证
2016/10/11 Javascript
Centos7 中 Node.js安装简单方法
2016/11/02 Javascript
AngularJS用户选择器指令实例分析
2016/11/04 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
2018/05/24 jQuery
JavaScript对象的浅拷贝与深拷贝实例分析
2018/07/25 Javascript
解决Layui 表单提交数据为空的问题
2018/08/15 Javascript
javascript防抖函数debounce详解
2019/06/11 Javascript
微信小程序实现蒙版弹出窗功能
2019/09/17 Javascript
JavaScript 中判断变量是否为数字的示例代码
2020/10/22 Javascript
使用Python的PEAK来适配协议的教程
2015/04/14 Python
在Python中操作列表之list.extend()方法的使用
2015/05/20 Python
将字典转换为DataFrame并进行频次统计的方法
2018/04/08 Python
python实现归并排序算法
2018/11/22 Python
python操作文件的参数整理
2019/06/11 Python
通过celery异步处理一个查询任务的完整代码
2019/11/19 Python
python打印n位数“水仙花数”(实例代码)
2019/12/25 Python
Pytorch 实现冻结指定卷积层的参数
2020/01/06 Python
使用python实现时间序列白噪声检验方式
2020/06/03 Python
Python常用数字处理基本操作汇总
2020/09/10 Python
Python+unittest+DDT实现数据驱动测试
2020/11/30 Python
美国在线家居装饰店:Belle&June
2018/10/24 全球购物
全球最大的生存食品、水和装备专用在线市场:BePrepared.com
2020/01/02 全球购物
前台接待岗位职责
2015/02/03 职场文书
党员干部廉政承诺书
2015/04/28 职场文书
上诉答辩状范文
2015/05/22 职场文书
HashMap实现保存两个key相同的数据
2021/06/30 Java/Android