简单谈谈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对表单操作2
Apr 06 Javascript
使用js 设置url参数
Jul 08 Javascript
javascript中字符串的定义示例代码
Dec 19 Javascript
jQuery中first()方法用法实例
Jan 06 Javascript
原生js与jQuery实现简单的tab切换特效对比
Jul 30 Javascript
纯jquery实现模仿淘宝购物车结算
Aug 20 Javascript
JS实现网站菜单拖拽移位效果的方法
Sep 24 Javascript
vue.js实现点击后动态添加class及删除同级class的实现代码
Apr 04 Javascript
vue3.0 CLI - 2.4 - 新组件 Forms.vue 中学习表单
Sep 14 Javascript
解决layer.open弹出框不能获取input框的值为空的问题
Sep 10 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
Apr 15 Javascript
Vue图片裁剪组件实例代码
Jul 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
用PHP实现的生成静态HTML速度快类库
2007/03/31 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
2014/10/26 PHP
Laravel 5框架学习之Eloquent 关系
2015/04/09 PHP
PHP中set_include_path()函数相关用法分析
2016/07/18 PHP
老生常谈文本文件和二进制文件的区别
2017/02/27 PHP
PHP论坛实现积分系统的思路代码详解
2020/06/01 PHP
PHP执行系统命令函数实例讲解
2021/03/03 PHP
Javascript里使用Dom操作Xml
2006/09/20 Javascript
function, new function, new Function之间的区别
2007/03/08 Javascript
firefo xml 读写实现js代码
2009/06/11 Javascript
jquery 元素相对定位代码
2010/10/15 Javascript
window.open不被拦截的实现代码
2012/08/22 Javascript
js文件Cookie存取值示例代码
2014/02/20 Javascript
javascript获取当前的时间戳的方法汇总
2015/07/26 Javascript
两种JS实现屏蔽鼠标右键的方法
2020/08/20 Javascript
完美实现js焦点轮播效果(一)
2017/03/07 Javascript
[js高手之路]原型式继承与寄生式继承详解
2017/08/28 Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
2018/01/09 Javascript
vue 路由嵌套高亮问题的解决方法
2018/05/17 Javascript
Javascript删除数组里的某个元素
2019/02/28 Javascript
vue中解决拖拽改变存在iframe的div大小时卡顿问题
2020/07/22 Javascript
vue组件暴露和.js文件暴露接口操作
2020/08/11 Javascript
详解Python3中的Sequence type的使用
2015/08/01 Python
详解Python迭代和迭代器
2016/03/28 Python
python字典操作实例详解
2017/11/16 Python
Python分支结构(switch)操作简介
2018/01/17 Python
python安装和pycharm环境搭建设置方法
2020/05/27 Python
Python排序函数的使用方法详解
2020/12/11 Python
美国领先的眼镜和太阳镜在线零售商:Glasses.com
2019/08/26 全球购物
简述安装Slackware Linux系统的过程
2012/05/08 面试题
医院护士求职自荐信格式
2013/09/21 职场文书
校园文明标语
2014/06/13 职场文书
2014年商场工作总结
2014/11/22 职场文书
小学中队活动总结
2015/05/11 职场文书
集结号观后感
2015/06/08 职场文书
2015大学迎新晚会主持词
2015/07/16 职场文书