vue動(dòng)畫(huà)—通過(guò)鉤子函數(shù)實(shí)現(xiàn)半場(chǎng)動(dòng)畫(huà)操作
注意:
1.起始位置設(shè)置了一個(gè)(0,0)在第一遍執(zhí)行時(shí),是沒(méi)有作用的。在一次入場(chǎng)動(dòng)畫(huà)執(zhí)行完成之后,在最終位置停下來(lái)并不在起始位置,通過(guò)這里的位置的設(shè)置可以將入場(chǎng)動(dòng)畫(huà)結(jié)束時(shí)的位置調(diào)到這里
2.理解enter()函數(shù)的el的指代對(duì)象和done()指代的回調(diào)函數(shù)
3.理解this.show = !this.show,這句話有兩個(gè)作用。一是:控制顯示和隱藏,二是:false —> true為半場(chǎng)動(dòng)畫(huà),true—>false又是為另半場(chǎng)動(dòng)畫(huà)。這樣就能完成一直循環(huán)執(zhí)行半場(chǎng)動(dòng)畫(huà)的效果了。
HTML代碼:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="../lib/vue.js"></script> </head> <style> .ball{ margin: 50px 50px; width: 15px; height: 15px; border-radius: 50px; background-color: brown; } </style> <body> <div id="app"> <input type="button" value="跳進(jìn)籃子里" v-on:click="show=!show"> <transition v-on:before-enter="bEnter" v-on:enter="enter" v-on:after-enter="aEnter"> <div class="ball" v-show="show"></div> </transition> </div> <script> var vm = new Vue({ el:'#app', data:{ show:false }, methods:{ bEnter(el){ el.style.transform = "translate(0,0)" //表示動(dòng)畫(huà)入場(chǎng)之前,坐標(biāo)表示位置是在起始位置不動(dòng) //在一次入場(chǎng)動(dòng)畫(huà)執(zhí)行完成之后,在最終位置停下來(lái)并不在起始位置,通過(guò)這里的位置的設(shè)置可以將入場(chǎng)動(dòng)畫(huà)結(jié)束時(shí)的位置調(diào)到這里 }, enter(el,done){ el.offsetTop; //必須要寫(xiě)一下offsetTop,offsetWeith等四種中的其中一種,強(qiáng)制刷新動(dòng)畫(huà) el.style.transform = "translate(200px,450px)"; el.style.transition = "all 2s ease"; done() //done是enter方法的原生的引用函數(shù)名,這里表示是回調(diào)函數(shù),也就是接下來(lái)執(zhí)行的操作aEnter(),消滅延遲效果。 }, aEnter(el){ this.show = !this.show; } } //這里的el代表,將要執(zhí)行半場(chǎng)動(dòng)畫(huà)的對(duì)象,是第一個(gè)原生的參數(shù),跟自定義指令的el作用是一樣的 }); </script> </body> </html>
效果:
補(bǔ)充知識(shí):vue動(dòng)畫(huà)只有離場(chǎng)動(dòng)畫(huà),進(jìn)場(chǎng)動(dòng)畫(huà)不生效
存在問(wèn)題的圖:(只有離場(chǎng)動(dòng)畫(huà),進(jìn)場(chǎng)動(dòng)畫(huà)不生效)
解決之后效果圖:
解決辦法:
在transition標(biāo)簽中加入appear屬性
<template> <transition mode="out-in" appear> <div class="singer-detail"> </div> </transition> </template>
以上這篇vue動(dòng)畫(huà)—通過(guò)鉤子函數(shù)實(shí)現(xiàn)半場(chǎng)動(dòng)畫(huà)操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
一篇文章帶你吃透Vue生命周期(結(jié)合案例通俗易懂)
這篇文章主要給大家介紹了關(guān)于如何通過(guò)一篇文章帶你吃透Vue生命周期,文章通過(guò)結(jié)合案例更加的通俗易懂,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-02-02vue+element-ui前端使用print-js實(shí)現(xiàn)打印功能(可自定義樣式)
Print.js主要是為了幫助我們直接在瀏覽器中開(kāi)發(fā)打印功能,下面這篇文章主要給大家介紹了關(guān)于vue+element-ui前端使用print-js實(shí)現(xiàn)打印功能(可自定義樣式)的相關(guān)資料,需要的朋友可以參考下2022-11-11vue3中關(guān)于i18n字符串轉(zhuǎn)義問(wèn)題
這篇文章主要介紹了vue3中關(guān)于i18n字符串轉(zhuǎn)義問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04在vue項(xiàng)目中 實(shí)現(xiàn)定義全局變量 全局函數(shù)操作
這篇文章主要介紹了在vue項(xiàng)目中 實(shí)現(xiàn)定義全局變量 全局函數(shù)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10Vue中watch監(jiān)聽(tīng)屬性新舊值相同的問(wèn)題解決方案
這篇文章主要給大家分享了Vue中watch監(jiān)聽(tīng)屬性新舊值相同問(wèn)題解決方案,如果有遇到相同問(wèn)題的朋友,可以參考閱讀本文2023-08-08vuejs實(shí)現(xiàn)遞歸樹(shù)型菜單組件
本篇文章主要介紹了vuejs實(shí)現(xiàn)遞歸樹(shù)型菜單組件,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01vue結(jié)合el-upload實(shí)現(xiàn)騰訊云視頻上傳功能
這篇文章主要介紹了vue結(jié)合el-upload實(shí)現(xiàn)騰訊云視頻上傳功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07