JS動畫效果,注意事件函數中所傳遞的傳遞的參數及某些事件函數返回的函數
1.進入動畫鈎子:before-enter,enter,after-enter;
2.離開動畫鈎子:before-leave,leave,after-leave;
3.在enter鈎子中的函數調用done()告訴Vue,JS動畫完成。
4.使用velocity.js動畫庫實現動畫:Velocity(el,{樣式屬性},{duration:1000,complete:done})
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Vue中的JS與Velocity.js的結合</title> <script src="./vue.js"></script> </head> <body> <div id="root"> <transition name="fade" @befor-enter="handleBeforeEnter" @enter="handleEnter" @after-enter="handleAfterEnter"> <div v-show="show">hello world</div> </transition> <button @click="handleClick">切換</button> </div> <script> var vm=new Vue({ el:'#root', data:{ show:true }, methods:{ handleClick:function(){ this.show=!this.show }, handleBeforeEnter:function(el){ el.style.color="red" }, handleEnter:function(el,done){ setTimeout(() =>{ el.style.color='green' },2000) setTimeout(() =>{ done() },4000) }, handleAfterEnter:function(el){ el.style.color='#000' } } }) </script> </body> </html>