vue2.0 transition组件实现过渡效果

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="js/vue.js" ></script>
<style>
*{margin: 0;padding: 0;}
.app{
width: 220px;
height: 310px;
background: #F0F0F0;
margin: 0 auto;
margin-top: 100px;
overflow: hidden;
}
.btn{
display: block;
width: 80px;
height: 30px;
background: #20B060;
color: #FFF;
text-align: center;
line-height: 30px;
outline: none;
border: none;
border-radius: 3px;
margin: 10px 0 0 10px;
}
.container{
width: 200px;
height: 200px;
background: #E0E0E0;
margin: 0 auto;
margin-top: 20px;
overflow: hidden;
}
.box{
    width:100%;
    height:100%;
    text-align: center;
    line-height: 200px;
    background: #ff8282;
    color: #Fff;
    /*以下两个默认值,可不写*/
    /*写上只是为了便于讲解,记住这两个*/
    opacity: 1;
    margin-left: 0;
}

 .box-enter-active,.box-leave-active{
    transition: all .8s;
 }
 .box-enter{
    opacity: 0;
    margin-top: 100%;
 }
 .box-leave-active{
    opacity: 0;
    margin-top: 100%;
 } 
</style>
</head>
<body>
<div id="app" class="app">
<button @click='showBox=!showBox' class="btn">切换</button>
 
<div class="container">
<transition name="box">
    <div v-show="showBox" class="box">
        i am the box
    </div>
</transition>


</div>
</div>
 
<script>
new Vue({
el:'#app',
data:{
showBox:false
},
})
</script>


<h2>过渡原理分析</h2>

&nbsp; Vue提供的组件叫transition, <transition name="box"></transition>
<br /><br />
&nbsp; Vue提供的 <transition/> 组件,会在下列四种情况下起作用:
<br />
&nbsp;&nbsp;&nbsp;   ⑴. 条件渲染(使用v-if)
<br />
&nbsp;&nbsp;&nbsp; ⑵. 条件展示(使用了v-show)
<br />
&nbsp;&nbsp;&nbsp; ⑶. 动态组件
<br />
&nbsp;&nbsp;&nbsp; ⑷. 组件根节点
<br />
在上述的任意一种情况发生的时候(比如:v-show的值为true切换成false的时候),我们可以给 <transition/> 组件包含的节点元素添加entering/leaving过渡动画效果
<br /><br />
当一个被 <transition/> 组件包含的节点出现了以上的4种情况的任意一种的时候,
Vue自动嗅探目标元素是否应用了 CSS 过渡或动画,
<br />
如果是,在恰当的时机添加/删除 CSS 类名。
<br />
所谓的:“在恰当的时机添加/删除 CSS 类名”,其实是:
<br />
1.v-enter:进入过渡效果(enter)刚刚开始那一刻。在元素被插入或者show的时候生效,在下一个帧就会立刻移除,一瞬间的事。
<br />
2.v-enter-active: 表示进入过渡(entering)的结束状态。在元素被插入时生效,在 transition/animation 完成之后移除。
<br />
3.v-leave: 离开过渡(leave)的开始那一刻。在离开过渡被触发时生效,在下一个帧移除,也是一瞬间的事。
<br />
4.v-leave-active:离开过渡(leaving)的结束状态。在离开过渡被触发时生效,在 transition/animation 完成之后移除。
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值