最近寫vue的項目,需要添加一個動畫,首先想到的就是jQuery中常用的第三方庫,animate,但是這個不是能完全兼容的,需要自己做處理。然后就在晚上尋找Vue版本的動畫庫,然后就找到了這個vue2-animate。網上的教程還是不少的,然后demo能直接運行,但是他們有一點沒有寫的很明白,就是在添加enter-active-class或leave-active-class屬性的時候。官方的文檔寫了,需要加入-enter/-leave,或者加入In或者Out
請看官方的英文原文:
Animate.css's original classnames are supported on enter/leave transitions. So if you're going to use Custom Transition Classes, you can either add -enter/-leave to the classes:
1 <transition 2 name="custom-classes-transition" 3 enter-active-class="bounceLeft-enter" 4 leave-active-class="bounceRight-leave" 5 > 6 <p v-if="show">hello</p> 7 </transition>
Or use the regular In/Out syntax:
1 <transition 2 name="bounce" 3 enter-active-class="bounceInLeft" 4 leave-active-class="bounceOutRight" 5 > 6 <p v-if="show">hello</p> 7 </transition>
最后說一下他的使用方法,很簡單的:
1 (c)npm install --save vue2-animate
然后再你的main.js中添加上css的引入
1 import 'vue2-animate/dist/vue2-animate.min.css'
或者官方說了,
require('vue2-animate/dist/vue2-animate.min.css')
都是可以的,然后,你想要實現動畫的元素上面,需要包裹一層 transition 標簽。然后再name屬性定義是使用具體什么類型的動畫,然后enter-active-class和leave-active-class 屬性添加對應的動畫class名, 記住動畫class名,要加上In或者Out
下面是常見的動畫名稱:
Bounce
bouncebounceDownbounceLeftbounceRightbounceUp
Fade
fadefadeDownfadeDownBigfadeLeftfadeLeftBigfadeRightfadeRightBigfadeUpfadeUpBig
Flip
flipflipXflipY
Rotate
rotaterotateDownLeftrotateDownRightrotateUpLeftrotateUpRight
Slide
slideDownslideLeftslideRightslideUp
Zoom
zoomzoomDownzoomLeftzoomRightzoomUp
LightSpeed
lightSpeed
最后肯定是要放上官網的鏈接的:https://www.npmjs.com/package/vue2-animate#custom-transition-classes
另一個鏈接是VUE過渡的鏈接:https://cn.vuejs.org/v2/guide/transitions.html
