目录
vue中给我们提供了一些类名,共有六个—— .v-enter、.v-enter-active、.v-enter-to .v-leave、.v-leave-active、.v-leave-to 这六个类名可以用来设置vue中元素进行切换的过渡动画
- /*我们只需要在css中 写入这六个类名 并分别设置不同的样式 即可实现显示于隐藏之间切换的过渡动画*/
- .v-leave{
- /*元素隐藏前的初始样式*/
- }
- .v-leave-active{
- /*元素隐藏过程中添加的样式 一般都写transition 用来控制动画的时长*/
- transition:all ns;
- }
- .v-leave-to{
- /*元素隐藏完成后的结束样式*/
- }
-
- .v-enter{
- /*元素显示前的初始样式*/
- }
- .v-enter-active{
- /*元素显示过程中添加的样式 一般都写transition 用来控制动画的时长*/
- transition:all ns;
- }
- .v-enter-to{
- /*元素显示完成后的结束样式*/
- }
注意:如果想给某一元素设置过渡动画 需要先给该元素 使用transition组件进行包裹
要添加过渡动画的元素
vue有一个专门编写css动画样式的css库 名为animate.css
这个类库中 提供很多类名 我们可以直接给元素添加类名 来实现元素的转场动画
使用animate.css的流程
1.安装:npm install animate.css --save
2.引入:通过link 引入animate.css
3.使用类名:
- <div class="animate__animated 动画类">div>
4.animate.css结合vue使用
- <transition enter-active-class=“入场动画类名” leave-active-class=“离场动画类名”> 要添加过渡动画的元素 transition>
animate.css 和 vue自带类名 实现转场动画的区别
前者可以很方便的 给任意元素 设置转场动画
后者并不是很方便
vue自带类名给不同元素设置不同的转场动画 需要通过transition组件的name属性 和 类名相配合才能实现
- /* div的转场动画 因为div的transition设置了name属性 因此 我们就需要将类名设置为name-leave、name-leave-active等*/
- .box-leave{
- opacity:1;
- transform: rotate(0deg);
- }
- .box-leave-active{
- transition: all 1s;
- }
- .box-leave-to{
- opacity:0;
- transform: rotate(-720deg);
- }
- .box-enter{
- opacity:0;
- transform:rotateY(0deg);
- }
- .box-enter-active{
- transition: all 1s;
- }
- .box-enter-to{
- opacity:1;
- transform: rotateY(-720deg);
- }
- <body>
- <div id="app">
- <button @click="fn">按钮button>
- <transition>
- <h1 v-if="flag">{{content}}h1>
- transition>
- <transition name="box">
- <div v-if="flag" id="box">{{content}}div>
- transition>
- div>
- <script src="../../../vue.js">script>
- <script>
- let vm = new Vue({
- el:"#app",
- data:{
- content:"张三",
- flag:true
- },
- methods:{
- fn(){
- this.flag = !this.flag
- }
- }
- })
- script>
- body>