简单谈谈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 相关文章推荐
Prototype使用指南之dom.js
Jan 10 Javascript
ie下jquery.getJSON的缓存问题的处理方法
Mar 29 Javascript
form表单中去掉默认的enter键提交并绑定js方法实现代码
Apr 01 Javascript
js Dialog 去掉右上角的X关闭功能
Apr 23 Javascript
常用的JavaScript WEB操作方法分享
Feb 28 Javascript
JavaScript替换当前页面的方法
Apr 03 Javascript
JavaScript的Backbone.js框架入门学习指引
May 07 Javascript
深入浅析javascript中的作用域(推荐)
Jul 19 Javascript
JS实现浏览器打印、打印预览示例
Feb 28 Javascript
原生js实现验证码功能
Mar 16 Javascript
详解webpack编译多页面vue项目的配置问题
Dec 11 Javascript
Vue+TypeScript中处理computed方式
Apr 02 Vue.js
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
一个用于MySQL的PHP XML类
2006/10/09 PHP
PHP生成各种常见验证码和Ajax验证过程
2016/01/10 PHP
PHP中大括号'{}'用法实例总结
2017/02/08 PHP
PHP实现的mongoDB数据库操作类完整实例
2018/04/10 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
2020/04/27 PHP
JavaScript 放大镜 移动镜片效果代码
2011/05/09 Javascript
JS日期和时间选择控件升级版(自写)
2013/08/02 Javascript
简单的jquery左侧导航栏和页面选中效果
2014/08/21 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
2015/08/25 Javascript
微信公众号-获取用户信息(网页授权获取)实现步骤
2016/10/21 Javascript
微信小程序 图片加载(本地,网路)实例详解
2017/03/10 Javascript
Angularjs 动态添加指令并绑定事件的方法
2017/04/13 Javascript
JS+HTML5 FileReader实现文件上传前本地预览功能
2020/03/27 Javascript
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
jQuery实现可兼容IE6的遮罩功能详解
2017/09/19 jQuery
vue插槽slot的理解和使用方法
2019/04/03 Javascript
详解在Python程序中使用Cookie的教程
2015/04/30 Python
实例讲解Python的函数闭包使用中应注意的问题
2016/06/20 Python
解决Linux系统中python matplotlib画图的中文显示问题
2017/06/15 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
2018/07/02 Python
Otel.com:折扣酒店预订
2017/08/24 全球购物
香港网上花店:FlowerAdvisor香港
2019/05/30 全球购物
汇科协同Java笔试题
2012/03/31 面试题
电子专业毕业生自我鉴定
2014/01/22 职场文书
人力资源部经理岗位职责规定
2014/02/23 职场文书
货车司机岗位职责
2014/03/18 职场文书
党支部承诺书范文
2014/03/28 职场文书
文明班级建设方案
2014/05/15 职场文书
理想点亮人生演讲稿
2014/05/21 职场文书
税务干部群众路线教育实践活动自我剖析材料
2014/09/21 职场文书
个人租房协议书(范本)
2014/10/14 职场文书
Vue实现下拉加载更多
2021/05/09 Vue.js
基于JavaScript实现年月日三级联动
2021/06/22 Javascript
postgresql 删除重复数据案例详解
2021/08/02 PostgreSQL
Redis之RedisTemplate配置方式(序列和反序列化)
2022/03/13 Redis
win11无法登录onedrive错误代码0x8004def7怎么办 ?
2022/04/05 数码科技