国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Vue中JS動畫與Velocity.js的結合使用

2024-05-06 15:42:30
字體:
來源:轉載
供稿:網友

前面學習了用css實現動畫效果,那 Vue 中能不能用js實現動畫效果呢?

其實 Vue 提供了很多動畫鉤子

enter

入場動畫鉤子函數有before-enter、enter、after-enter

before-enter

動畫出現前的事件

<div id="root">  <transition name="fade"    @before-enter="handleBeforeEnter"    //動畫出現前的事件  >    <div v-if="show">hello world</div>  </transition>  <button @click="handleClick">切換</button></div>let vm = new Vue({  el: '#root',  data: {    show:true  },  methods: {    handleClick(){      this.show = !this.show    },    handleBeforeEnter(el){     //接收一個參數 el,為 dom 元素      el.style.color = 'red'    }  }})

enter

before-enter事件結束后執行

<div id="root">  <transition name="fade"    @before-enter="handleBeforeEnter"    @enter="handleEnter"    //before-enter 事件結束后執行  >    <div v-if="show">hello world</div>  </transition>  <button @click="handleClick">切換</button></div>let vm = new Vue({  el: '#root',  data: {    show:true  },  methods: {    handleClick(){      this.show = !this.show    },    handleBeforeEnter(el){      el.style.color = 'red'    }    handleEnter(el,done){      //接收兩個參數,第一個參數 el 為 dom 元素,第二個參數是 done 是個回調函數      setTimeout(()=>{        el.style.color = 'green'        done()         //done 回調函數非常重要,在執行完動畫后需手動執行下這個函數,相當于告訴 Vue 這個動畫已經執行完了,會再去調用 after-enter 事件      },2000)    }  }})

after-enter

enter事件中done被調用后,after-enter事件會被觸發

<div id="root">  <transition name="fade"        @before-enter="handleBeforeEnter"        @enter="handleEnter"        @after-enter="handleAfterEnter"   //enter 事件中 done 被調用后,after-enter 事件會被觸發  >    <div v-if="show">hello world</div>  </transition>  <button @click="handleClick">切換</button></div>let vm = new Vue({  el: '#root',  data: {    show: true  },  methods: {    handleClick() {      this.show = !this.show    },    handleBeforeEnter(el) {      el.style.color = 'red'    },    handleEnter(el, done) {      setTimeout(() => {        el.style.color = 'green'        done()      }, 2000)    },    handleAfterEnter(el) {   //接收一個參數 el,為 dom 元素      setTimeout(()=>{        el.style.color = 'blue'      },2000)    }  }})

leave

與入場動畫對應的出場動畫鉤子函數有before-leave、leave、after-leave。它們的用法與入場動畫用法一樣

Velocity.js庫

有了上面基礎后,配合Velocity.js庫,能實現更強大的動畫效果。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 桂阳县| 册亨县| 绿春县| 兴仁县| 金溪县| 双柏县| 微山县| 板桥市| 宣恩县| 抚顺县| 宁陵县| 东兰县| 治多县| 天峻县| 津市市| 兰州市| 陇西县| 紫金县| 罗田县| 北票市| 仙桃市| 彭阳县| 沙洋县| 武安市| 宁阳县| 镇安县| 建阳市| 天峨县| 康定县| 庄浪县| 肇庆市| 安塞县| 揭阳市| 青田县| 宿迁市| 日喀则市| 开封市| 乌什县| 宜阳县| 湘潭市| 策勒县|