欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue中JS動畫與Velocity.js的結(jié)合使用

 更新時間:2019年02月13日 09:55:24   作者:UCCs  
這篇文章主要介紹了Vue中JS動畫與Velocity.js的結(jié)合使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

前面學(xué)習(xí)了用css實現(xiàn)動畫效果,那 Vue 中能不能用js實現(xiàn)動畫效果呢?

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

enter

入場動畫鉤子函數(shù)有before-enter、enter、after-enter

before-enter

動畫出現(xiàn)前的事件

<div id="root">
  <transition name="fade"
    @before-enter="handleBeforeEnter"    //動畫出現(xiàn)前的事件
  >
    <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){     //接收一個參數(shù) el,為 dom 元素
      el.style.color = 'red'
    }
  }
})

enter

before-enter事件結(jié)束后執(zhí)行

<div id="root">
  <transition name="fade"
    @before-enter="handleBeforeEnter"
    @enter="handleEnter"    //before-enter 事件結(jié)束后執(zhí)行
  >
    <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){      //接收兩個參數(shù),第一個參數(shù) el 為 dom 元素,第二個參數(shù)是 done 是個回調(diào)函數(shù)
      setTimeout(()=>{
        el.style.color = 'green'
        done()         //done 回調(diào)函數(shù)非常重要,在執(zhí)行完動畫后需手動執(zhí)行下這個函數(shù),相當(dāng)于告訴 Vue 這個動畫已經(jīng)執(zhí)行完了,會再去調(diào)用 after-enter 事件
      },2000)
    }
  }
})

after-enter

enter事件中done被調(diào)用后,after-enter事件會被觸發(fā)

<div id="root">
  <transition name="fade"
        @before-enter="handleBeforeEnter"
        @enter="handleEnter"
        @after-enter="handleAfterEnter"   //enter 事件中 done 被調(diào)用后,after-enter 事件會被觸發(fā)
  >
    <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) {   //接收一個參數(shù) el,為 dom 元素
      setTimeout(()=>{
        el.style.color = 'blue'
      },2000)
    }
  }
})

leave

與入場動畫對應(yīng)的出場動畫鉤子函數(shù)有before-leave、leave、after-leave。它們的用法與入場動畫用法一樣

Velocity.js庫

有了上面基礎(chǔ)后,配合Velocity.js庫,能實現(xiàn)更強大的動畫效果。

<div id="root">
  <transition name="fade"
        @before-enter="handleBeforeEnter"
        @enter="handleEnter"
        @after-enter="handleAfterEnter"   //enter 事件中 done 被調(diào)用后,after-enter 事件會被觸發(fā)
  >
    <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.opacity = 0
    },
    handleEnter(el, done) {
      Velocity(el, {     //第一個參數(shù)是要操作的 dom 元素
        opacity: 1
      }, {
        duration: 1000,   //第三參數(shù)中需要配置一個 complete 屬性,值為 done,因為 Velocity 執(zhí)行完后會自動執(zhí)行 complete 屬性,這里設(shè)置為 done 是讓它去觸發(fā) after-enter 事件
        complete: done
      })
    },
    handleAfterEnter(el) {
      console.log('動畫結(jié)束')
    }
  }
})

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue3目錄調(diào)整方案詳解

    Vue3目錄調(diào)整方案詳解

    默認生成的目錄結(jié)構(gòu)不滿足我們的開發(fā)需求,所以這里需要做一些自定義改動,本文給大家分享Vue3目錄調(diào)整方案,感興趣的朋友一起看看吧
    2023-11-11
  • vue3使用wangeditor封裝和自定義上傳文件官方教程

    vue3使用wangeditor封裝和自定義上傳文件官方教程

    這篇文章主要為大家介紹了vue3使用wangeditor封裝和自定義上傳文件的官方教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪<BR>
    2023-06-06
  • Vue.js父與子組件之間傳參示例

    Vue.js父與子組件之間傳參示例

    本篇文章主要介紹了Vue.js父與子組件之間傳參示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • Vue3源碼分析調(diào)度器與watch用法原理

    Vue3源碼分析調(diào)度器與watch用法原理

    這篇文章主要為大家介紹了Vue3源碼分析調(diào)度器與watch用法原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • Vue點擊在彈窗外部實現(xiàn)一鍵關(guān)閉的示例代碼

    Vue點擊在彈窗外部實現(xiàn)一鍵關(guān)閉的示例代碼

    在Vue應(yīng)用中,彈窗是一個常見的交互元素,有時我們可能希望用戶點擊彈窗外部時,彈窗能夠自動關(guān)閉,本文主要介紹了Vue點擊在彈窗外部實現(xiàn)一鍵關(guān)閉的示例代碼,感興趣的可以了解一下
    2024-06-06
  • vue中數(shù)據(jù)請求axios的封裝和使用

    vue中數(shù)據(jù)請求axios的封裝和使用

    這篇文章主要介紹了vue中數(shù)據(jù)請求axios的封裝和使用,Axios?是一個基于?promise?的?HTTP?庫,下面文章圍繞主題的相關(guān)資料展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-04-04
  • vue使用recorder-core.js實現(xiàn)錄音功能

    vue使用recorder-core.js實現(xiàn)錄音功能

    這篇文章主要介紹了vue如何使用recorder-core.js實現(xiàn)錄音功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • Vue實現(xiàn)調(diào)用PC端攝像頭實時拍照

    Vue實現(xiàn)調(diào)用PC端攝像頭實時拍照

    這篇文章主要為大家詳細介紹了Vue實現(xiàn)調(diào)用PC端攝像頭實時拍照,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 使用vue中的v-for遍歷二維數(shù)組的方法

    使用vue中的v-for遍歷二維數(shù)組的方法

    下面小編就為大家分享一篇使用vue中的v-for遍歷二維數(shù)組的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • layui實際項目使用過程中遇到的兼容性問題及解決

    layui實際項目使用過程中遇到的兼容性問題及解決

    這篇文章主要介紹了layui實際項目使用過程中遇到的兼容性問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04

最新評論