黑马vue---46、vue使用过渡类名实现动画
黑马vue---46、vue使用过渡类名实现动画
一、总结
一句话总结:
vue动画的过渡类名的时间点中没有设置样式的话就是默认的样式
使用 transition 元素,把 需要被动画控制的元素,包裹起来
<transition> <h3 v-if="flag">这是一个H3</h3> </transition>
1、vue动画的过渡类名的控制?
可以用数据的true和false来控制,自动触发动画效果:v-if="flag"
2、vue动画的过渡类名的四个时间点?
v-enter:【这是一个时间点】 是进入之前,元素的起始状态,此时还没有开始进入
v-enter-to:定义进入过渡的结束状态。在元素被插入之后下一帧生效 (与此同时 v-enter 被移除),在过渡/动画完成之后移除。
v-leave:定义离开过渡的开始状态。在离开过渡被触发时立刻生效,下一帧被移除。
v-leave-to:【这是一个时间点】 是动画离开之后,离开的终止状态,此时,元素 动画已经结束了
3、vue动画的过渡类名的两个时间段(进出时间段的动画效果设置可以是一样的)?
v-enter-active 【入场动画的时间段】
v-leave-active 【离场动画的时间段】
.v-enter-active, .v-leave-active{ transition: all 0.8s ease; }
4、vue动画的过渡类名的四个时间点中,相似的两对?
v-enter和v-leave-to
v-enter-to和v-leave
5、vue使用过渡类名实现动画步骤?
1、在css中设置四个时间点和两个时间段的样式
2、使用 transition 元素包裹要执行动画的部分
<!-- 2. 自定义两组样式,来控制 transition 内部的元素实现动画 --> <style> /* 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; } </style> <!-- 1. 使用 transition 元素,把 需要被动画控制的元素,包裹起来 --> <!-- transition 元素,是 Vue 官方提供的 --> <transition> <h3 v-if="flag">这是一个H3</h3> </transition>
二、vue使用过渡类名实现动画
1、效果图
2、代码
1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 8 <title>Document</title> 9 <script src="./lib/vue-2.4.0.js"></script> 10 <!-- 2. 自定义两组样式,来控制 transition 内部的元素实现动画 --> 11 <style> 12 /* v-enter 【这是一个时间点】 是进入之前,元素的起始状态,此时还没有开始进入 */ 13 /* v-leave-to 【这是一个时间点】 是动画离开之后,离开的终止状态,此时,元素 动画已经结束了 */ 14 .v-enter, 15 .v-leave-to { 16 opacity: 0; 17 transform: translateX(150px); 18 } 19 20 /* v-enter-active 【入场动画的时间段】 */ 21 /* v-leave-active 【离场动画的时间段】 */ 22 .v-enter-active, 23 .v-leave-active{ 24 transition: all 0.8s ease; 25 } 26 </style> 27 </head> 28 29 <body> 30 <div id="app"> 31 <input type="button" value="toggle" @click="flag=!flag"> 32 <!-- 需求: 点击按钮,让 h3 显示,再点击,让 h3 隐藏 --> 33 <!-- 1. 使用 transition 元素,把 需要被动画控制的元素,包裹起来 --> 34 <!-- transition 元素,是 Vue 官方提供的 --> 35 <transition> 36 <h3 v-if="flag">这是一个H3</h3> 37 </transition> 38 </div> 39 40 <script> 41 // 创建 Vue 实例,得到 ViewModel 42 var vm = new Vue({ 43 el: '#app', 44 data: { 45 flag: false 46 }, 47 methods: {} 48 }); 49 </script> 50 </body> 51 52 </html>
三、使用过渡类名实现动画
为什么要有动画:动画能够提高用户的体验,帮助用户更好的理解页面中的功能;
使用过渡类名
- HTML结构:
<div id="app">
<input type="button" value="动起来" @click="myAnimate">
<!-- 使用 transition 将需要过渡的元素包裹起来 -->
<transition name="fade">
<div v-show="isshow">动画哦</div>
</transition>
</div>
- VM 实例:
// 创建 Vue 实例,得到 ViewModel
var vm = new Vue({
el: '#app',
data: {
isshow: false
},
methods: {
myAnimate() {
this.isshow = !this.isshow;
}
}
});
- 定义两组类样式:
/* 定义进入和离开时候的过渡状态 */
.fade-enter-active,
.fade-leave-active {
transition: all 0.2s ease;
position: absolute;
}
/* 定义进入过渡的开始状态 和 离开过渡的结束状态 */
.fade-enter,
.fade-leave-to {
opacity: 0;
transform: translateX(100px);
}
版权申明:欢迎转载,但请注明出处
一些博文中有一些参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。
在校每年国奖、每年专业第一,加拿大留学,先后工作于华东师范大学和香港教育大学。
2024-10-30:27岁,宅加太忙,特此在网上找女朋友,坐标上海,非诚勿扰,vx:fan404006308
AI交流资料群:753014672