vue-基本动画
程序员文章站
2022-03-21 18:09:43
不使用动画 使用过渡类名实现动画 修改vue的前缀 第三方类实现动画 需引入css文件:`` ......
不使用动画
<div id="app"> <input type="button" value="toggle" @click="flag=!flag"> <!-- 需求: 点击按钮,让 h3 显示,再点击,让 h3 隐藏 --> <h3 v-if="flag">这是一个h3</h3> </div>
// 创建 vue 实例,得到 viewmodel var vm = new vue({ el: '#app', data: { flag: false }, methods: {} });
使用过渡类名实现动画
/*<!-- 2. 自定义两组样式,来控制 transition 内部的元素实现动画 -->*/ /* v-enter 【这是一个时间点】 是进入之前,元素的起始状态,此时还没有开始进入 */ /* v-leave-to 【这是一个时间点】 是动画离开之后,离开的终止状态,此时,元素 动画已经结束了 */ .v-enter, .v-leave-to { opacity: 0; transform: translatex(150px); } /* v-enter-active 【入场动画的时间段】 */ /* v-leave-active 【离场动画的时间段】 */ .v-enter-active, .v-leave-active{ transition: all 0.8s ease; }
// 创建 vue 实例,得到 viewmodel var vm = new vue({ el: '#app', data: { flag: false }, methods: {} });
// 创建 vue 实例,得到 viewmodel var vm = new vue({ el: '#app', data: { flag: false }, methods: {} });
修改vue的前缀
/* v-enter 【这是一个时间点】 是进入之前,元素的起始状态,此时还没有开始进入 */ /* v-leave-to 【这是一个时间点】 是动画离开之后,离开的终止状态,此时,元素 动画已经结束了 */ .v-enter, .v-leave-to { opacity: 0; transform: translatex(150px); } /* v-enter-active 【入场动画的时间段】 */ /* v-leave-active 【离场动画的时间段】 */ .v-enter-active, .v-leave-active{ transition: all 0.8s ease; } .my-enter, .my-leave-to { opacity: 0; transform: translatey(70px); } .my-enter-active, .my-leave-active{ transition: all 0.8s ease; }
<div id="app"> <input type="button" value="toggle" @click="flag=!flag"> <!-- 需求: 点击按钮,让 h3 显示,再点击,让 h3 隐藏 --> <!-- 1. 使用 transition 元素,把 需要被动画控制的元素,包裹起来 --> <!-- transition 元素,是 vue 官方提供的 --> <transition> <h3 v-if="flag">这是一个h3</h3> </transition> <hr> <input type="button" value="toggle2" @click="flag2=!flag2"> <transition name="my"> <h6 v-if="flag2">这是一个h6</h6> </transition> </div>
/* v-enter 【这是一个时间点】 是进入之前,元素的起始状态,此时还没有开始进入 */ /* v-leave-to 【这是一个时间点】 是动画离开之后,离开的终止状态,此时,元素 动画已经结束了 */ .v-enter, .v-leave-to { opacity: 0; transform: translatex(150px); } /* v-enter-active 【入场动画的时间段】 */ /* v-leave-active 【离场动画的时间段】 */ .v-enter-active, .v-leave-active{ transition: all 0.8s ease; } .my-enter, .my-leave-to { opacity: 0; transform: translatey(70px); } .my-enter-active, .my-leave-active{ transition: all 0.8s ease; }
第三方类实现动画
需引入css文件:<link rel="stylesheet" href="./lib/animate.css">
<div id="app"> <input type="button" value="toggle" @click="flag=!flag"> <!-- 需求: 点击按钮,让 h3 显示,再点击,让 h3 隐藏 --> <!-- <transition enter-active-class="animated bouncein" leave-active-class="animated bounceout"> <h3 v-if="flag">这是一个h3</h3> </transition> --> <!-- 使用 :duration="毫秒值" 来统一设置 入场 和 离场 时候的动画时长 --> <!-- <transition enter-active-class="bouncein" leave-active-class="bounceout" :duration="200"> <h3 v-if="flag" class="animated">这是一个h3</h3> </transition> --> <!-- 使用 :duration="{ enter: 200, leave: 400 }" 来分别设置 入场的时长 和 离场的时长 --> <transition enter-active-class="bouncein" leave-active-class="bounceout" :duration="{ enter: 200, leave: 400 }"> <h3 v-if="flag" class="animated">这是一个h3</h3> </transition> </div>
// 创建 vue 实例,得到 viewmodel var vm = new vue({ el: '#app', data: { flag: false }, methods: {} });
上一篇: 推荐系统架构详解
下一篇: FCKEditor的配置