动画 VUE基础回顾8
过渡和动画
使用<transition> 组件包裹
例: <transition name="fade">
<div v-if="true">过渡动画</div>
</transition>
style:.fade-enter-active, .fade-leave-active {transition: opactiy .5s}
.fade-enter, .fade-leave-to{opacity:0;}
以上切换v-if的状态能够让div元素渐显渐隐,而不是直接添加删除
原理是VUE通过tansition组件的name属性值,然后使用它在过渡的各个节点为包含的元素添加类名。当元素被添加到文档或者从文档中移除时,会分别应用enter和leave两类过渡。以下是会添加的类名:
{name}-enter(常用):这个类名会在元素被插入DOM时加入,然后在下一帧立刻移除。可以使用它来设置那些需要在元素开始进入过渡时移除的CSS属性。
{name}-enter-active(常用): 在元素整个动画阶段应用。和-enter 同时被添加,然后在动画完成时被移除。适用于设置css过渡时间长度,过渡的属性和使用的曲线函数。
{name}-enter-to: 这个类名会在-enter类名从元素移除的同时添加到元素上,适合用来设置那些在元素开始进入过渡时添加的css属性,通常在-enter类上设置与之相反的过渡属性好些
{name}-leave:在离开过渡中,在离开过渡时被添加,下一帧被移除。
{name}-leave-active(常用): 在离开过渡中,用于离开过渡的整个阶段。
{name}-leave-to(常用): 在离开过渡被触发之后下一帧生效,在完成过渡之后被移除
js过渡动画
<transition>还提供用于实现的js动画钩子,这些钩子函数和用于css的过渡的类名类似。
beforeEnter:进入动画前开始触发,适合设置初始值
enter:这个钩子会在进入动画开始被触发,可以在这里运行动画。可以使用done回调来标明动画已经完成
afterEnter:动画执行完成时被触发
enterCancelled:进入动画被取消时触发
beforeLeave:这个钩子等同于进入动画的beforeEnter钩子,会在离开动画开始前被调用
leave:对于离开动画而言等同于进入enter 钩子,可以在这里进入动画
afterLeave:会在离开动画执行完成时被触发
leaveCancelled:在离开动画被取消时触发
这些钩子会以时间的形式在transiton组件上触发
例:
<transition
v-on:before-enter="test1"
v-on:enter="test2"
v-on:leave="test3"
> <div v-if="true">过渡动画</div> </transition>
//script
methods:{
test1(el){
el.style.opacity = 0;
},
test2(el){
TweenLite.to(el,0.6,{opacity:1,onComplete:done});
},
test3(el){
TweenLite.to(el,0.6,{opacity:0,onComplete:done});
}
使用js动画可以创建比使用css过渡复杂的多的动画效果,包括多步动画,或每次显示不同的过渡效果等,但css的性能更好,所在一般能用css实现就使用css。
动画 VUE基础回顾8的更多相关文章
- 自定义指令 VUE基础回顾7
vue除了有v-if等内置指令,我们也可以创建自定义指令. 例:我们可以实现一个可以每隔一秒闪烁的节点,类似于<blink>标签的行为.添加一个指令类似于添加一个过滤器,可以将他传入vue ...
- 一、VUE基础回顾1
1.v-if和v-show v-if 和v-show都可以显示和隐藏元素: 区别:(1)v-if初始值为false那么这个元素不会被渲染 ,v-show不管初始值为何值都会被渲染 (2)v-if是控制 ...
- VUE基础回顾6
1.ref ref可以直接访问元素,而不需要使用querySelector或者其他dom节点的原生方法. <div ref = "box"></div> 在 ...
- VUE基础回顾2
1.响应式 vue修改了每个添加到data上的对象,当该对象发生变化时vue会收到通知,从而实现响应式.对象的每个属性都会被替换为getter,setter方法. 有两种方式实现data对象的监听 ( ...
- vue基础回顾 router
vue-router 1. 底层原理 hash 或者h5 histroy(有兼容性) 2. 使用的时候Vue需要引入VueRouter Vue.use(VueRouter) //VueRouter 底 ...
- 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十八║Vue基础: 指令(下)+计算属性+watch
回顾 今天来晚辣,给公司做了一个小项目,一个瀑布流+动态视频控制的DEMO,有需要的可以联系我,公司的项目就不对外展示了(一个后端程序员真的要干前端了哈哈哈). 书接上文,昨天正式的开始了Vue的代码 ...
- 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十九║Vue基础: 样式动态绑定+生命周期
回顾 哈喽大家好,前后端分离系列文章又开始了,今天周一,还是感谢大家花时间来观看我写的博客,周末呢,没有写文章,但是也没有闲着,主要是研究了下遗留问题,看过之前文章的应该知道,之前的在AOP使用Red ...
- Vue基础之插值表达式的另一种用法!附加变量的监听!
Vue基础之插值表达式的另一种用法!附加变量的监听! 讲这个之前我们先回顾一下原来的用法! <body> <!-- Vue.js的应用可以分为两个重要的组成部分 一个是视图! 另一个 ...
- Vue基础之Vue的模板语法
Vue基础之Vue的模板语法 数据绑定 01 数据绑定最常见的形式就是使用插值表达式(两个大括号!)[也就是小胡子语法!mustache] <body> <!-- Vue.js的应用 ...
随机推荐
- 【phpstudy2016】apache配置Tp5.0,获取表单数据总是多了一个路由变量,解决
1.用的apahce配置tp5.0的php环境 2.发现input()过来的数据,总是多了一个变量,那就是路由变量, 类似[array(2) { ["/index/index/form_su ...
- latch - undo global data等待事件分析
一环境跑压力测试的时候,标题所述等待事件在top N中.不用查,也知道是因为undo竞争的事件. 根据metalink文档解释,是由于undo表空间不足引起的. This implies that s ...
- odoo开发笔记 -- 触发机制/埋点设置
场景描述: 项目需求中,经常会需要,当某个字段处某个特定状态时候,触发执行特定的方法:或者创建某条记录的时候,同时做另一个操作:如何实现类似的需求? 实现方式: odoo中提供了几种触发方式: 1. ...
- 微信支付:URL未注册问题
起因:一个项目已经做好了,微信支付也调通的,域名 www.xxxx.com ,某天客户需要换域名,改为weixin.xxxx.com, 原先的www转向客户自己的官网,结果换了之后,发现微信支付出错: ...
- WebGL学习笔记(十二):加载模型文件
目前为止,我们用到的模型顶点uv信息等,都是直接定义在代码中的,实际使用中,这些数据应该是由3D编辑器编辑好后按照一定的格式存储在文件中的,我们需要从文件中提取出对应的数据之后,组合成我们可以使用的信 ...
- PHP MQTT 实践
MQTT介绍:http://mqtt.org 服务器端https://mosquitto.org/download/ PHP客户端https://github.com/bluerhinos/phpMQ ...
- Cassandra开发入门文档第四部分(集合类型、元组类型、时间序列、计数列)
Cassandra 提供了三种集合类型,分别是Set,List,MapSet: 非重复集,存储了一组类型相同的不重复元素,当被查询时会返回排好序的结果,但是内部构成是无序的值,应该是在查询时对结果进行 ...
- Postgresql常用命令汇总
sudo -u postgres psql #进入postgresql ALTER USER postgres WITH password 'postgres'; #修改postgres用户密码 ps ...
- Mac下 homebrew 安装mysql
操作步骤 安装homebrew brew install mysql 安装mysql 安装完成之后,可以运行命令启动mysql服务 mysql.server start 然后输入命令设置密码 mysq ...
- Vue(七)整合vue-router&Vuex&Axios
整合vue-router&Vuex 先创建工程 vue create vue-axios 然后选择 勾选 回车,出现是否使用history mode?选择y,代表URL地址里面不会出现#.选择 ...