1.<transtion>标签内部智能包裹一个标签
实现一个过渡的时候,用css3的写法是这个样子的,点击的时候每个状态对应不同的class,然后就是每个在class中添加属性transition: 属性名 效果过渡花费时间 运动曲线 延迟时间
transition动画一般和v-if 以及v-show结合使用
这个transtion一般有四个状态,分别是v-enter (这个类名中所有的class只适应于动画的第一帧,) v-enter-active(这个动画的class使用于在过渡过程中所有的) v-leave(只应用在最后一帧) v-leave-active(是在离开应用的全部时间里面))
transition只有name 一个属性,这个是用来标记过渡动画的名字的 比如说transtion name="test" 那么v-enter的类名应该写成 test-enter
可以通过enter-active-class=""
以及leave-active-class=""定义来实现
然后就是在css中可以调用动画
动画可以和transtion一起使用,使用的方法是
animation : 动画名称 过渡时间
动画的写法是
@keyframes 动画名称{
0%{
}
25%{
}
}
其中可以写transform 之类的
transform-origin的用法是 transfor-origin: 横坐标的位置 纵坐标的位置也可以写成left top之类的,表示从什么地方开始做变化
比如说transform: rotate() transform: scale()表示以这个位置进行变换的
2.transtion 使用animate.css
第一步引入animate.css动画
第二步使用在transition中使用enter-active-class="animated 动画名称" 比如说enter-active-class="animated swing"离开的时候动画写成 leave-active-class="animated 动画名称"”
修改animated的持续时间
第一种方法是打开源码找到animated的时间全局修改
第二种方法
直接在元素上面加上animation-duration: 2s 这个时候持续时间就会被修改
transtion 元素的刚进来的时候展示是没有动画的,这个时候,我们可以在transtion中加上一个appear 以及appear-active-class="animated 动画名称"这个时候刚刷新页面的时候动画就会展示了
transtion标签中添加:duration=“100000”可以强制改变持续时间,这个数字代表多少毫秒
3.transtion中的js钩子
总共有六个钩子
@before-enter="beforeEnter",有一个参数e
@enter="enter" 两个参数,第一个是e,第二个元素是done函数,enter执行完成后执行
@after-enter="",enter中的done()函数触发,最终状态,上面三个函数打印的e,=都是before-enter中的函数
@before-leave=""与上一致,只不过e,打印的是各自的状态
@leave=""
@after-leave=""