简单谈谈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的each方法使用示例分享
Mar 25 Javascript
用javascript关闭本窗口不弹出询问框的方法
Sep 12 Javascript
AngularJS中的过滤器使用详解
Jun 16 Javascript
javascript生成不重复的随机数
Jul 17 Javascript
JSON字符串转JSON对象
Jul 31 Javascript
js制作带有遮罩弹出层实现登录注册表单特效代码分享
Sep 05 Javascript
jquery滚动条插件slimScroll使用方法
Feb 09 Javascript
源码分析Vue.js的监听实现教程
Apr 23 Javascript
vue.js将时间戳转化为日期格式的实现代码
Jun 05 Javascript
JS中验证整数和小数的正则表达式
Oct 08 Javascript
基于javascript的无缝滚动动画1
Aug 07 Javascript
JavaScript实现简单验证码
Aug 24 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.ini中文版(2)
2006/10/09 PHP
站长助手-网站web在线管理程序 v1.0 下载
2007/05/12 PHP
php下通过伪造http头破解防盗链的代码
2010/07/03 PHP
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
2012/05/07 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
2014/11/19 PHP
ThinkPHP模板输出display用法分析
2014/11/26 PHP
理解JavaScript变量作用域更轻松
2009/10/25 Javascript
修改好的jquery滚动字幕效果实现代码
2011/06/22 Javascript
js 三级关联菜单效果实例
2013/08/13 Javascript
jQuery使用empty()方法删除元素及其所有子元素的方法
2015/03/26 Javascript
jQuery使用hide方法隐藏指定元素class样式用法实例
2015/03/30 Javascript
BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)
2016/07/07 Javascript
深入理解Angularjs中$http.post与$.post
2017/05/19 Javascript
详解windows下vue-cli及webpack 构建网站(三)使用组件
2017/06/17 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
2018/08/06 Javascript
vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法
2018/08/22 Javascript
vuex如何重置所有state(可定制)
2019/01/17 Javascript
layui form表单提交后实现自动刷新
2019/10/25 Javascript
vue和小程序项目中使用iconfont的方法
2020/05/19 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
在Python中使用lambda高效操作列表的教程
2015/04/24 Python
Python中利用aiohttp制作异步爬虫及简单应用
2018/11/29 Python
10分钟用python搭建一个超好用的CMDB系统
2019/07/17 Python
python对数组进行排序,并输出排序后对应的索引值方式
2020/02/28 Python
django自定义非主键自增字段类型详解(auto increment field)
2020/03/30 Python
ProForm英国站点:健身房和健身器材网上商店
2019/06/05 全球购物
荷兰家电销售网站:Welhof
2020/12/08 全球购物
请解释virtual关键字的含义
2015/06/17 面试题
几个判断型的面试题
2012/07/03 面试题
化学学院毕业生自荐信范文
2013/12/17 职场文书
开展党的群众路线教育实践活动方案
2014/02/05 职场文书
信息科学与技术专业求职信范文
2014/02/20 职场文书
医院党员公开承诺书
2014/08/30 职场文书
公司员工辞职信范文
2015/05/12 职场文书
django中websocket的具体使用
2022/01/22 Python
Elasticsearch 聚合查询和排序
2022/04/19 Python