<style>
#box
{
width
:
100px
;
height
:
100px
;
background-color
:
red
;
}
/* 通过class设置动画方式,一共需要6个class */
/* 设置入场动画开始时的样式 */
.v-enter,.v-leave-to
{
opacity
:
0
;
}
/* 设置入场动画过程中的样式 */
.v-enter-active,.v-leave-active
{
transition
:
all
0.7s
;
}
/* 设置入场动画结束后的样式 */
.v-enter-to,.v-leave
{
opacity
:
1
;
}
/* 设置元素离场动画开始时的状态 */
/* .v-leave{
opacity: 1;
} */
/* 设置元素离场动画过程中的状态 */
/* .v-leave-active{
transition: all 0.7s;
} */
/* 设置元素离场动画结束时的状态 */
/* .v-leave-to{
opacity: 0;
} */
#b2
{
width
:
100px
;
height
:
100px
;
background-color
:
greenyellow
;
}
/* v- 开头的动画样式是为匿名transition标签设置的样式,还可以使用xxx-center为某种transition标签设置动画样式 */
.ani-enter
{
height
:
0
!important
;
}
.ani-enter-active
{
transition
:
all
0.7s
;
}
.ani-enter-to
{
height
:
100px
;
}
.ani-leave
{
width
:
100px
;
}
.ani-leave-active
{
transition
:
all
0.7s
;
}
.ani-leave-to
{
width
:
0px
!important
;
}
<
/style>
</head>
<body>
<div
id
=
"app"
>
<input
type
=
"checkbox"
v-model
=
"show"
>
<!-- v-show和v-if在显示和隐藏之间切换时 是不带动画的,如果需要添加动画,要使用transition标签 -->
<transition>
<!-- v-show和v-if写在transition标签中时,当元素需要隐藏时,不会立刻隐藏,而是执行离场动画,动画结束之后才隐藏。 -->
<div
id
=
"box"
v-show
=
"show"
></div>
</transition>
<!-- 如果在页面中需要执行多个动画,则可以为transition标签设置name属性,在css中单独为这个transition设置动画方式 -->
<transition
name
=
"ani"
>
<div
id
=
"b2"
v-show
=
"show"
></div>
</transition>
</div>
<script
src
=
"vue.js"
>
<
/script>
<script>
// 动画的区别
// 简单动画 少帧
new
Vue
({
el:
"#app"
,
data:
{
show:
false
}
})
<
/script>
</body>