vue过渡动画的使用
1,基本语法格式
<style>
/* 注意:这个6个过渡类,都是vue内置的,所以,需要使用vue提供的这个类名才行 */
.v-leave {
/* 定义 出场动画的 起始状态 */
/* 只停留一帧 */
transform: translateY(100px);
}
.v-leave-active {
/* 定义 出场动画 过程 */
transition: all 1s ease;
}
.v-leave-to {
/* 定义 出场动画 结束状态(即:该动画要达到的目标状态) */
transform: translateY(300px);
opacity: 0;
}
/* 定义 入场动画 */
.v-enter {
/* 定义 入场动画 的起始状态 */
transform: translateY(300px);
opacity: 0;
}
.v-enter-active {
/* 定义 入场动画 过程 */
transition: all 2s ease;
}
.v-enter-to {
/* 定义 入场动画 过程 */
/* 只停留一帧 */
transform: translateY(0px);
}
</style>
<transition>
<p v-show = "show" v-bind:style = "styleobj">动画实例</p>
</transition>
过渡其实就是一个淡入淡出的效果。Vue在元素显示与隐藏的过渡中,提供了 6 个 class 来切换:
-
v-enter
:定义进入过渡的开始状态。在元素被插入之前生效,在元素被插入之后的下一帧移除。 -
v-enter-active
:定义进入过渡生效时的状态。在整个进入过渡的阶段中应用,在元素被插入之前生效,在过渡/动画完成之后移除。这个类可以被用来定义进入过渡的过程时间,延迟和曲线函数。 -
v-enter-to
: 2.1.8版及以上 定义进入过渡的结束状态。在元素被插入之后下一帧生效 (与此同时v-enter
被移除),在过渡/动画完成之后移除。 -
v-leave
: 定义离开过渡的开始状态。在离开过渡被触发时立刻生效,下一帧被移除。 -
v-leave-active
:定义离开过渡生效时的状态。在整个离开过渡的阶段中应用,在离开过渡被触发时立刻生效,在过渡/动画完成之后移除。这个类可以被用来定义离开过渡的过程时间,延迟和曲线函数。 -
v-leave-to
: 2.1.8版及以上 定义离开过渡的结束状态。在离开过渡被触发之后下一帧生效 (与此同时v-leave
被删除),在过渡/动画完成之后移除。
2,css过渡动画案例:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script> <style> /* 可以设置不同的进入和离开动画 */ /* 设置持续时间和动画函数 */ .fade-enter-active, .fade-leave-active { transition: opacity 2s } .fade-enter, .fade-leave-to { opacity: 0 } </style> </head> <body> <div id = "databinding"> <button v-on:click = "show = !show">戳我!!</button> <transition name = "fade"> <p v-show = "show" v-bind:style = "styleobj">动画</p> </transition> </div> <script type = "text/javascript"> var vm = new Vue({ el: '#databinding', data: { show:true, styleobj :{ fontSize:'30px', color:'red' } }, methods : { } }); </script> </body> </html>
3,animate.css插件
Animate.css是由Dan Eden的Daniel Eden使用CSS3的animation制作的动画效果的CSS集合。
它预设了抖动(shake)、闪烁(flash)、弹跳(bounce)、翻转(flip)、旋转(rotateIn/rotateOut)、淡入淡出(fadeIn/fadeOut)等多达 60 多种动画效果,几乎包含了所有常见的动画效果。换句话说:Animate.css就是一大堆的很酷,很有趣,而且很炫又能跨浏览器的动画效果样式集锦,可以直接使用到项目中。
地址:https://github.com/daneden/animate.css
实际应用
在一般的使用中,直接在元素上添加animated和对应的类名即可
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="https://unpkg.com/animate.css@3.5.2/animate.min.css"> <style> .box{height: 100px;width: 100px;background-color: lightblue} </style> </head> <body> <div class="box animated flash"></div> </body> </html>
animat加过渡的一些问题
type="transition" //用于选择动画的持续时间是过渡的时间
:duration="10000" //自定义动画时长
:duration="{enter:5000,leave:10000}" //动画进入时长和离开时长
以上内容为学习总结,欢迎批评指正~~