简单谈谈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 学习第五课 Ajax 使用说明
May 17 Javascript
JavaScript中几个重要的属性(this、constructor、prototype)介绍
May 19 Javascript
js获取IP和PcName(IE)在vs中可用
Aug 02 Javascript
JQuery中阻止事件冒泡几种方式及其区别介绍
Jan 15 Javascript
jQuery中innerHeight()方法用法实例
Jan 19 Javascript
jQuery toggle 代替方法
Mar 22 Javascript
bootstrap导航栏、下拉菜单、表单的简单应用实例解析
Jan 06 Javascript
AngularJS1.X学习笔记2-数据绑定详解
Apr 01 Javascript
详解vue-router 2.0 常用基础知识点之router-link
May 10 Javascript
JS利用正则表达式实现简单的密码强弱判断实例
Jun 16 Javascript
vue使用laydate时间插件的方法
Nov 14 Javascript
Vue CLI 2.x搭建vue(目录最全分析)
Feb 27 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获得用户使用的代理服务器ip即真实ip
2006/12/31 PHP
PHP strtotime函数详解
2009/12/18 PHP
PHP把JPEG图片转换成Progressive JPEG的方法
2014/06/30 PHP
PHP+ajax分页实例简析
2015/12/07 PHP
Javascript模块模式分析
2008/05/16 Javascript
js对象关系图 方便dom操作
2012/03/18 Javascript
在jQuery中 常用的选择器介绍
2013/04/16 Javascript
jquery引用方法时传递参数原理分析
2014/10/13 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
2015/05/25 Javascript
jQuery操作Table技巧大汇总
2016/01/23 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
2016/01/23 Javascript
Bootstrap创建可折叠的组件
2016/02/23 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
2016/04/17 Javascript
webpack构建react多页面应用详解
2017/09/15 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
2018/01/13 Javascript
Vue仿今日头条实例详解
2018/02/06 Javascript
jQuery中each遍历的三种方法实例分析
2018/09/07 jQuery
微信小程序实现一个简单swiper代码实例
2019/12/30 Javascript
Vue如何基于vue-i18n实现多国语言兼容
2020/07/17 Javascript
react的hooks的用法详解
2020/10/12 Javascript
[04:00]DOTA2解说界神雕侠侣 CJ第四天谷子现场过生日
2013/07/30 DOTA
[49:08]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python框架Flask的基本数据库操作方法分析
2018/07/13 Python
Python中的集合介绍
2019/01/28 Python
python清空命令行方式
2020/01/13 Python
匡威荷兰官方网站:Converse荷兰
2018/10/24 全球购物
Python里面如何实现tuple和list的转换
2012/06/13 面试题
会员活动策划方案
2014/08/19 职场文书
劳资员岗位职责
2015/02/13 职场文书
校本研修个人总结
2015/02/28 职场文书
党支部意见范文
2015/06/02 职场文书
教师教育心得体会
2016/01/19 职场文书
2016优秀班主任个人先进事迹材料
2016/02/26 职场文书
《钢铁是怎样炼成的》高中读后感
2019/08/07 职场文书
MySQL 开窗函数
2022/02/15 MySQL
python中的random模块和相关函数详解
2022/04/22 Python