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

Vue 頁面切換效果之 BubbleTransition(推薦)

 更新時間:2018年04月08日 13:50:40   作者:HelKyle  
使用 vue,vue-router,animejs 來講解如何實(shí)現(xiàn)vue頁面切換效果之 BubbleTransition,需要的朋友參考下吧

 

CodePen 地址

前端使用 SPA 之后,能獲得更多的控制權(quán),比如頁面切換動畫,使用后端頁面我們可能做不了上面的效果,或者做出來會出現(xiàn)明顯的閃屏。因?yàn)樗匈Y源都需要重新加載。

今天使用 vue,vue-router,animejs 來講解如何上面的效果是如何實(shí)現(xiàn)的。

步驟

  1. 點(diǎn)擊菜單,生成 Bubble,開始執(zhí)行入場動畫
  2. 頁面跳轉(zhuǎn)
  3. 執(zhí)行退場動畫

函數(shù)式調(diào)用組件

我希望效果是通過一個對象去調(diào)用,而不是 v-show, v-if 之類的指令,并且為了保持統(tǒng)一,仍然使用 Vue 來寫組件。我通常會用新的 Vue 根節(jié)點(diǎn)來實(shí)現(xiàn),讓效果獨(dú)立于業(yè)務(wù)組件之外。

let instance = null
function createServices (Comp) {
 // ...
 return new Vue({
 // ...
 }).$children[0]
}
function getInstance () {
 instance = instance || createServices(BubbleTransitionComponent)
 return instance
}
const BubbleTransition = {
 scaleIn: () => {
 return getInstance().animate('scaleIn')
 },
 fadeOut: () => {
 return getInstance().animate('fadeOut')
 }
}

接著實(shí)現(xiàn) BubbleTransitionComponent,那么 BubbleTransition.scaleIn, BubbleTransition.scaleOut 就能正常工作了。 animejs 可以監(jiān)聽的動畫執(zhí)行結(jié)束的事件。anime().finished 獲得 Promise 對象。

<template>
 <div class="transition-bubble">
 <span v-show="animating" class="bubble" id="bubble">
 </span>
 </div>
</template>
<script>
import anime from 'animejs'
export default {
 name: 'transition-bubble',
 data () {
 return {
  animating: false,
  animeObjs: []
 }
 },
 methods: {
 scaleIn (selector = '#bubble', {duration = 800, easing = 'linear'} = {}) {
  // this.animeObjs.push(anime().finished)
 },
 fadeOut (selector = '#bubble', {duration = 300, easing = 'linear'} = {}) {
  // ...
 },
 resetAnimeObjs () {
  this.animeObjs.reset()
  this.animeObjs = []
 },
 animate (action, thenReset) {
  return this[action]().then(() => {
  this.resetAnimeObjs()
  })
 }
 }
}

最初的想法是,在 router config 里面給特定路由 meta 添加標(biāo)記,beforeEach 的時候判斷判斷該標(biāo)記執(zhí)行動畫。但是這種做法不夠靈活,改成通過 Hash 來標(biāo)記,結(jié)合 Vue-router,切換時重置 hash。

<router-link class="router-link" to="/#__bubble__transition__">Home</router-link>
const BUBBLE_TRANSITION_IDENTIFIER = '__bubble__transition__'
router.beforeEach((to, from, next) => {
 if (to.hash.indexOf(BUBBLE_TRANSITION_IDENTIFIER) > 0) {
 const redirectTo = Object.assign({}, to)
 redirectTo.hash = ''
 BubbleTransition.scaleIn()
  .then(() => next(redirectTo))
 } else {
 next()
 }
})
router.afterEach((to, from) => {
 BubbleTransition.fadeOut()
})

酷炫的動畫能在一瞬間抓住用戶的眼球,我自己也經(jīng)常在逛一些網(wǎng)站的時候發(fā)出,wocao,太酷了?。?!的感嘆??赡茏罱K的實(shí)現(xiàn)用不了幾行代碼,自己多動手實(shí)現(xiàn)一下,下次設(shè)計(jì)師提出不合理的動畫需求時可以裝逼,這種效果我分分鐘能做出來,但是我認(rèn)為這里不應(yīng)該使用 ** 動畫,不符合用戶的心理預(yù)期啊。

CodePen 地址

總結(jié)

以上所述是小編給大家介紹的Vue 頁面切換效果之 BubbleTransition(推薦),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Vue3+Vite項(xiàng)目使用less的實(shí)現(xiàn)步驟

    Vue3+Vite項(xiàng)目使用less的實(shí)現(xiàn)步驟

    最近學(xué)習(xí)在vite項(xiàng)目中配置less,本文主要介紹了Vue3+Vite項(xiàng)目使用less的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • 前端vue實(shí)現(xiàn)甘特圖功能

    前端vue實(shí)現(xiàn)甘特圖功能

    dhtmlxGantt是一個強(qiáng)大的JavaScript Gantt圖表庫,提供易于使用、高度可自定義的Gantt圖表組件,它支持多項(xiàng)任務(wù)和進(jìn)度條,以及多種列和行布局,可用于創(chuàng)建各種類型的時間線和計(jì)劃表,本文給大家介紹前端vue實(shí)現(xiàn)甘特圖的相關(guān)知識,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • vue大屏自適應(yīng)的實(shí)現(xiàn)方法(cv就能用)

    vue大屏自適應(yīng)的實(shí)現(xiàn)方法(cv就能用)

    最近在用VUE寫大屏頁面,遇到屏幕自適應(yīng)問題,下面這篇文章主要給大家介紹了關(guān)于vue大屏自適應(yīng)的實(shí)現(xiàn)方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • 基于vue實(shí)現(xiàn)頁面滾動加載的示例詳解

    基于vue實(shí)現(xiàn)頁面滾動加載的示例詳解

    頁面內(nèi)容太多會導(dǎo)致加載速度過慢,這時可考慮使用滾動加載即還沒有出現(xiàn)在可視范圍內(nèi)的內(nèi)容塊先不加載,出現(xiàn)后再加載,所以本文給大家介紹了基于vue實(shí)現(xiàn)頁面滾動加載的示例,需要的朋友可以參考下
    2024-01-01
  • vue?watch中如何獲取this.$refs.xxx節(jié)點(diǎn)

    vue?watch中如何獲取this.$refs.xxx節(jié)點(diǎn)

    這篇文章主要介紹了vue?watch中獲取this.$refs.xxx節(jié)點(diǎn)的方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue實(shí)現(xiàn)跳轉(zhuǎn)接口push 轉(zhuǎn)場動畫示例

    vue實(shí)現(xiàn)跳轉(zhuǎn)接口push 轉(zhuǎn)場動畫示例

    今天小編就為大家分享一篇vue實(shí)現(xiàn)跳轉(zhuǎn)接口push 轉(zhuǎn)場動畫示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 在vue自定義組件中使用?v-model指令詳情

    在vue自定義組件中使用?v-model指令詳情

    這篇文章主要介紹了在vue自定義組件中使用?v-model指令詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • vue從一個頁面跳轉(zhuǎn)到另一個頁面并攜帶參數(shù)的解決方法

    vue從一個頁面跳轉(zhuǎn)到另一個頁面并攜帶參數(shù)的解決方法

    這篇文章主要介紹了vue從一個頁面跳轉(zhuǎn)到另一個頁面并攜帶參數(shù)的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Vue中關(guān)于computed計(jì)算屬性的妙用

    Vue中關(guān)于computed計(jì)算屬性的妙用

    這篇文章主要介紹了Vue中關(guān)于computed計(jì)算屬性的妙用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • vueScroll實(shí)現(xiàn)移動端下拉刷新、上拉加載

    vueScroll實(shí)現(xiàn)移動端下拉刷新、上拉加載

    這篇文章主要介紹了vueScroll實(shí)現(xiàn)移動端下拉刷新、上拉加載,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評論