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 <!--1.导入Vue的包-->
10 <script src=" https://cdn.jsdelivr.net/npm/vue"></script>
11 <!-- 2.自定义两组样式,来控制transition内部的元素实现动画 -->
12 <style>
13 /*v-enter 【这是一个时间点】是进入之前,元素的起始状态,此时还没有开始进入*/
14 /*v-leave-to 【这是一个时间点】 是动画离开之后,离开的终止状态,此时,元素动画已经结束了*/
15 .v-enter,
16 .v-leave-to{
17 opacity: 0;
18 transform: translateX(150px);/*translateX()函数表示在二维平面上水平方向移动元素,等同于 translate(150px)*/
19 }
20 /*v-enter-active【入场动画的时间段】*/
21 /*v-leave-active 【离场动画的时间段】*/
22 .v-enter-active,
23 .v-leave-active{
24 transition: all 0.8s ease;/*所有属性都完成0.8s 由慢变快,然后慢速结束的效果*/
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
41 <script>
42 //创建 Vue 实例,得到 ViewModel
43 var vm = new Vue({
44 el:'#app',
45 data:{
46 flag:false
47 },
48 methods:{}
49 });
50 </script>
51 </body>
52 </html>