Vue 过渡(未)

2018-05-03  本文已影响0人  一包

原文

#当从 DOM 中插入、更新或移除项目时,Vue 提供多种应用过渡效果的方式。包括以下工具:

#当插入或删除包含在 transition 组件中的元素时,Vue 将会做以下处理:

#Vue 提供了 transition 外层包裹容器组件(wrapper component),可以给下列情形中的任何元素和组件添加进入/离开(enter/leave)过渡

#过渡类名

单元素过渡

  1. css过渡


<div id="myDiv">
  <button @click="show = !show">点击查看变化</button>
  <transition name="fade">      //fade 名字是可以更换的
    <div v-if="show">
        请看我的变化
    </div>
  </transition>

</div>
.fade-enter-active,.fade-leave-active {
    transition: all 1s linear;
}
.fade-enter,.fade-leave-active {
   opacity: 0;
   transform:translateX(50px);
}
new Vue({
    el:"#myDiv",
    data:{
        show:true
    }
})
  1. 设置css动画(将上面的css改为如下)
.fade-enter-active{
     animation:Ado .5s ease-in;
 }
 @keyframes Ado{
       0%{transform:scale(0.5,0.5);}
       60%{transform:scale(1,1);}
       80%{transform:scale(1.5,1.5);}
       100%{transform:scale(1,1);}
 }
 .fade-leave-active{
     animation:Bdo .5s ease-in;
 }
 @keyframes Bdo{
       0%{transform:scale(1,1);}
       60%{transform:scale(1.5,1.5);}
       80%{transform:scale(1,1);}
       100%{transform:scale(0.5,0.5);}

 }
  1. 自定义过渡类 :自定义过渡类就不需要 中的name属性了。类名可以是自己随意起,也可引入第三方动画库animate.css, 但是需要在 加入一些添加类名的属性 ,如:

<div id="myDiv">
   <button @click="show = !show">点击我</button>
     <!-- 这里要加上 animated 才会有效果 (第一个是我自己写的类名,不用加,但是引入animate.css 需要在前面加animate) -->
 <transition
    leave-active-class="achange"  
    enter-active-class="animated hinge"
  >
     <p v-if="show">看我的变化</p>
 </transition>      

</div>
.achange{
   animation:Ado .5s ease-in;
 }
 @keyframes Ado{
       0%{transform:scale(0.5,0.5);}
       60%{transform:scale(1,1);}
       80%{transform:scale(1.5,1.5);}
       100%{transform:scale(1,1);}
 }
new Vue({
    el:"#myDiv",
    data:{
        show:true
    }
})
上一篇 下一篇

猜你喜欢

热点阅读