最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

其實(shí) Vue 提供了很多動(dòng)畫鉤子

enter

入場(chǎng)動(dòng)畫鉤子函數(shù)有before-enter、enter、after-enter

before-enter

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

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

after-enter

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

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

leave

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

Velocity.js庫(kù)

有了上面基礎(chǔ)后,配合Velocity.js庫(kù),能實(shí)現(xiàn)更強(qiáng)大的動(dòng)畫效果。

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

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

相關(guān)文章

  • Vue.js+express利用切片實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳

    Vue.js+express利用切片實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳

    斷點(diǎn)續(xù)傳就是要從文件已經(jīng)下載的地方開始繼續(xù)下載,本文主要介紹了Vue.js+express利用切片實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳,具有一定的參考價(jià)值,感興趣的可以了解下
    2023-05-05
  • Element-ui?Layout布局(Row和Col組件)的實(shí)現(xiàn)

    Element-ui?Layout布局(Row和Col組件)的實(shí)現(xiàn)

    我們?cè)趯?shí)際開發(fā)中遇到一些布局的時(shí)候會(huì)用到Layout布局,本文就詳細(xì)的介紹了Element-ui?Layout布局(Row和Col組件)的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-12-12
  • Vue.js watch監(jiān)視屬性知識(shí)點(diǎn)總結(jié)

    Vue.js watch監(jiān)視屬性知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家分享的是關(guān)于Vue.js watch監(jiān)視屬性的相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的朋友們學(xué)習(xí)下。
    2019-11-11
  • vitejs預(yù)構(gòu)建理解及流程解析

    vitejs預(yù)構(gòu)建理解及流程解析

    這篇文章主要為大家介紹了vitejs預(yù)構(gòu)建理解及流程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • vue-create創(chuàng)建VUE3項(xiàng)目詳細(xì)圖文教程

    vue-create創(chuàng)建VUE3項(xiàng)目詳細(xì)圖文教程

    create-vue是Vue官方新的腳手架工具,底層切換到了vite(下一代前端工具鏈),為開發(fā)提供極速響應(yīng),下面這篇文章主要給大家介紹了關(guān)于vue-create創(chuàng)建VUE3項(xiàng)目的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • Vue父子模版?zhèn)髦导敖M件傳值的三種方法

    Vue父子模版?zhèn)髦导敖M件傳值的三種方法

    這篇文章主要介紹了Vue父子模版?zhèn)髦导敖M件傳值的三種方法,需要的朋友可以參考下
    2017-11-11
  • vue組件之間進(jìn)行傳值的方法

    vue組件之間進(jìn)行傳值的方法

    這篇文章主要介紹了vue組件之間進(jìn)行傳值的方法,文章圍繞主題展開詳細(xì)的內(nèi)容戒殺,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-09-09
  • 解決VUE-npm ERR! C:\rj\node-v14.4.0-win-x64\nod問(wèn)題

    解決VUE-npm ERR! C:\rj\node-v14.4.0-win-x64\nod問(wèn)題

    這篇文章主要介紹了解決VUE-npm ERR! C:\rj\node-v14.4.0-win-x64\nod問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • vue表格顯示字符串過(guò)長(zhǎng)的問(wèn)題及解決

    vue表格顯示字符串過(guò)長(zhǎng)的問(wèn)題及解決

    這篇文章主要介紹了vue表格顯示字符串過(guò)長(zhǎng)的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Vue基礎(chǔ)語(yǔ)法知識(shí)梳理上篇

    Vue基礎(chǔ)語(yǔ)法知識(shí)梳理上篇

    這篇文章主要介紹了Vue基礎(chǔ)語(yǔ)法知識(shí)梳理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-12-12

最新評(píng)論

陈巴尔虎旗| 五河县| 平潭县| 德化县| 清丰县| 延寿县| 扎赉特旗| 平潭县| 双江| 当雄县| 阳江市| 石林| 惠水县| 铜陵市| 水富县| 白山市| 古田县| 宜君县| 方山县| 九江县| 邵阳市| 延津县| 柞水县| 资阳市| 富蕴县| 乡宁县| 库尔勒市| 长治县| 开化县| 屯门区| 绿春县| 松溪县| 张北县| 拉孜县| 百色市| 浏阳市| 克东县| 平乐县| 海宁市| 洛川县| 颍上县|