vue2.0中使用过渡实现动画效果使用心得

  

  

这里将通过四个实践小案例来体验和学习css过渡,css动画,javascript钩子,列表过渡的应用。至于案例用到的知识点就请自行学习官网文档。

  

<强> 1. css过渡——实践

  

先来看看演示效果:

  

 vue2.0中使用过渡实现动画效果使用心得

  

这个案例其实很简单,通过一个过渡来触发多个子元素的过渡效果,我们只需要定义元素对应的过渡效果就可以,其他事情vue会帮我们搞的定,由此可以扩展出其他酷炫的过渡场景效果。先来看看这个简单案例的代码实现:
  

        & lt; template>   & lt; div类=在“应用程序”;   & lt;按钮@click=皊howMenu”class=癰tn”在{{文本}}& lt;/button>   & lt;过渡的名字=耙贫北?   & lt; div类="菜单" v-show=靶恪北?   & lt; div类=澳谠趇nner-1”在1 & lt;/div>   & lt; div类="内在inner-2 "祝辞2 & lt;/div>   & lt; div类="内在inner-3 "在3 & lt;/div>   & lt;/div>   & lt;/transition>   & lt;/div>   & lt;/template>      & lt;脚本类型=拔谋?ecmascript-6”比;   出口默认{   数据(){   返回{   显示:假   };   },   方法:{   showMenu () {   这一点。展示=! this.show;   }   },   计算:{   text () {   返回。显示& # 63;“收”:“开”;   }   }   };   & lt;/script>      & lt;风格lang="笔" rel=把奖?笔”在   .app   .btn   位置:固定   底部:50 px   右:10 px   z - index: 10   宽度:50 px   高度:50 px   行高:50 px   border - radius: 50%   边界:没有   大纲:没有   颜色:# fff   字体大小:18 px   背景:蓝色   .menu   位置:固定   底部:50 px   右:10 px   宽度:50 px   高度:50 px   border - radius: 50%   过渡:1:8)在   ,.move-enter-active   在   变换:translate3d (0, 0, 0)   transition-timing-function: cubic-bezier(0 .57无误,1.97)   .inner-1   transition-delay: 1。   .inner-2   transition-delay: 2   .inner-3   transition-delay: 3   和。move-enter及.move-leave-active   在   transition-timing-function: ease-in-out   .inner-1   变换:translate3d (60 px, 0, 0)   transition-delay: 3   .inner-2   变换:translate3d (40 px, 40 px, 0)   transition-delay: 2   .inner-3   变换:translate3d (60 px, 0, 0)   transition-delay: 1。   在   显示:inline-block   位置:绝对的   宽度:30 px   30 px高度:   行高:30 px   border - radius: 50%   背景:红色   text-align:中心   颜色:# fff   过渡:所有。4   .inner-1   前:-50像素   左:10 px   .inner-2   左:-30 px   前:-30像素   .inner-3   左:-50 px   上图:10 px   & lt;/style>      

可以看到我们的代码基本主要是完成css过渡效果的样式,而触发过渡效果只是简单地通过一个点击事件就搞定了,vue会自动嗅探目标元素是否有css过渡或动画,并在合适时添加/删除css类名。那下一个演示就来简单实现一下使用css动画做过渡的效果。

  

<强> 2。css动画——实践

  

先来看看演示效果:

  

 vue2.0中使用过渡实现动画效果使用心得

  

这个案例其实跟上面的演示差不多,不同之处在于过渡效果是使用css动画来实现,看下实现的代码:

        & lt; template>   & lt; div类=在“应用程序”;   & lt;按钮@click=皊howball”class=癰tn”祝辞show   & lt;过渡name=耙贫崩嘈?岸北?   & lt; div类="球" v-show=靶恪北?   & lt; div类="内部"祝辞& lt;/div>   & lt;/div>   & lt;/transition>   & lt;/div>   & lt;/template>      & lt;脚本类型=拔谋?ecmascript-6”比;   出口默认{   数据(){   返回{   显示:假   };   },   方法:{   showball () {   这一点。展示=! this.show;   }   }   };   & lt;/script>      & lt;风格lang="笔" rel=把奖?笔”在   @keyframes形变{   0%、100% {   border - radius: 50%   背景:红色   }   50% {   border - radius: 0   背景:蓝色   }   }      @keyframes moveball-in {   0% {   变换:translate3d (300 px, -200 px, 0)   }   50% {   变换:translate3d (100 px, -400 px, 0)   }   100% {   变换:translate3d (0, 0, 0)   }   }   @keyframes moveball-out {   0% {   变换:translate3d (0, 0, 0)   }   50% {   变换:translate3d (100 px, -400 px, 0)   }   100% {   变换:translate3d (300 px, -200 px, 0)   }   }   .app   .btn   宽度:40像素   30 px高度:   margin-top: 40像素   边界:没有   大纲:没有   背景:红色   颜色:# fff   .ball   位置:绝对的   底部:20 px   左:20 px   宽度:50 px   高度:50 px   过渡:1 s cubic-bezier(22、-0.86 .97点,算下来)   ,.move-enter-active   透明度:1   动画:moveball-in 1 s   在   动画:形变   ,.move-leave-active   透明度:0.8   动画:moveball-out 1 s   在   动画:形变   在   显示:inline-block   宽度:30 px   30 px高度:   border - radius: 50%   背景:红色   过渡:1 s线性的   & lt;/style>

vue2.0中使用过渡实现动画效果使用心得