简单谈谈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 相关文章推荐
jquery获取iframe中的dom对象(两种方法)
Jul 02 Javascript
jquery获取tr并更改tr内容示例代码
Feb 13 Javascript
JavaScript Split()方法
Dec 18 Javascript
Ajax的概述与实现过程
Nov 18 Javascript
javascript 中iframe高度自适应(同域)实例详解
May 16 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
Aug 16 Javascript
使用webpack搭建react开发环境的方法
May 15 Javascript
Vue和React组件之间的传值方式详解
Jan 31 Javascript
微信小程序 云开发模糊查询实现解析
Sep 02 Javascript
jquery获取input输入框中的值
Nov 13 jQuery
js实现3D旋转相册
Aug 02 Javascript
使用Typescript开发微信小程序的步骤详解
Jan 12 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 park、unpark、ord 函数使用方法(二进制流接口应用实例)
2010/10/19 PHP
浅析PHP原理之变量(Variables inside PHP)
2013/08/09 PHP
汇总PHPmailer群发Gmail的常见问题
2016/02/24 PHP
CI框架使用composer安装的依赖包步骤与方法分析
2016/11/21 PHP
Nginx实现反向代理
2017/09/20 Servers
php分享朋友圈的实现代码
2019/02/18 PHP
Google Map Api和GOOGLE Search Api整合实现代码
2009/07/18 Javascript
js预载入和JavaScript Image()对象使用介绍
2011/08/28 Javascript
jQuery EasyUI API 中文文档 - ValidateBox验证框
2011/10/06 Javascript
JavaScript中的单引号和双引号报错的解决方法
2014/09/01 Javascript
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
JQuery用户名校验的具体实现
2016/03/18 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
BootstrapTable+KnockoutJS自定义T4模板快速生成增删改查页面
2016/08/01 Javascript
微信小程序 框架详解及实例应用
2016/09/26 Javascript
JS运动改变单物体透明度的方法分析
2018/01/23 Javascript
vue 实现搜索的结果页面支持全选与取消全选功能
2019/05/10 Javascript
Vue 数据绑定的原理分析
2020/11/16 Javascript
微信小程序实现购物车小功能
2020/12/30 Javascript
在Python中利用Into包整洁地进行数据迁移的教程
2015/03/30 Python
Python学习小技巧之列表项的推导式与过滤操作
2017/05/20 Python
对python 树状嵌套结构的实现思路详解
2019/08/09 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
2019/08/23 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
玩转CSS3色彩
2010/01/16 HTML / CSS
美国照明、家居装饰和家具购物网站:Bellacor
2017/09/20 全球购物
生物技术研究生自荐信
2013/11/12 职场文书
外贸员简历中的自我评价
2014/03/04 职场文书
新学期教师寄语
2014/04/02 职场文书
感恩之星事迹材料
2014/05/03 职场文书
司机岗位职责说明书
2014/07/29 职场文书
道歉信怎么写
2015/05/12 职场文书
世界文化遗产导游词
2019/08/07 职场文书
Jupyter notebook 更改文件打开的默认路径操作
2021/05/21 Python
电频谱管理的原则是什么
2022/02/18 无线电
草系十大最强宝可梦,纸片人上榜,榜首大家最熟悉
2022/03/18 日漫