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

Vue進(jìn)階之利用transition標(biāo)簽實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)動(dòng)畫

 更新時(shí)間:2023年08月02日 14:42:59   作者:No Silver Bullet  
這篇文章主要為大家詳細(xì)介紹了Vue如何利用transition標(biāo)簽實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)動(dòng)畫,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起一下

一、前言

在Vue項(xiàng)目開發(fā)過(guò)程中,應(yīng)用全家桶vue-router實(shí)現(xiàn)路由跳轉(zhuǎn),且頁(yè)面前進(jìn)、后退跳轉(zhuǎn)過(guò)程中,分別對(duì)應(yīng)不同的切換動(dòng)畫。vue-router 切換頁(yè)面時(shí)怎么設(shè)置過(guò)渡動(dòng)畫?

首先,需要考慮以下問題:

如何判斷切換路由時(shí)是前進(jìn)還是后退?

每次切換時(shí)向左向右切換動(dòng)畫如何實(shí)現(xiàn)?

可通過(guò)以下解決方案實(shí)現(xiàn):

給各個(gè)頁(yè)面定義層級(jí),在切換路由時(shí)判斷用戶是進(jìn)入哪一層頁(yè)面。如果用戶進(jìn)入更高層級(jí)路由那么做前進(jìn)動(dòng)畫,如果用戶退到低層級(jí)路由那么做后退動(dòng)畫。

二、方案實(shí)現(xiàn)

// router/index.js
import VueRouter from 'vue-router'
import Home from '../components/home/home'
import User from '../components/user/user'
var router = new VueRouter({
    routes:[{
        name:'test',
        path:'/',
        meta:{index:0},//meta對(duì)象的index用來(lái)定義當(dāng)前路由的層級(jí),由小到大,由低到高
        component:{
            template:'<div>test</div>'
        }
    },{
        name:'home',
        path:'/home',
        meta:{index:1},
        component:Home
    },{
        name:'user',
        path:'/user/:id',
        meta:{index:2},
        component:User
    }]
});

通過(guò)watch監(jiān)聽函數(shù)監(jiān)控路由跳轉(zhuǎn),判斷切換頁(yè)面之間的層級(jí)關(guān)系,并以此來(lái)判斷路由前進(jìn)或者后退。

<template>
  <div id="app">
    <transition :name="transitionName">   
      <router-view></router-view>
    </transition>
  </div>
</template>
<script>
export default {
  name: 'App',
  data(){
      return {
          transitionName:''
      }
  },
  watch: {//使用watch 監(jiān)聽$router的變化
    $route(to, from) {
      //如果to索引大于from索引,判斷為前進(jìn)狀態(tài),反之則為后退狀態(tài)
      if(to.meta.index > from.meta.index){
	    //設(shè)置動(dòng)畫名稱
        this.transitionName = 'slide-left';
      }else{
        this.transitionName = 'slide-right';
      }
    }
  }
}
</script>
<style>
    // 編寫slide-left 和 slide-right 類的動(dòng)畫
  	.slide-right-enter-active,
    .slide-right-leave-active,
    .slide-left-enter-active,
    .slide-left-leave-active {
      will-change: transform;
      transition: all 500ms;
      position: absolute;
    }
    .slide-right-enter {
      opacity: 0;
      transform: translate3d(-100%, 0, 0);
    }
    .slide-right-leave-active {
      opacity: 0;
      transform: translate3d(100%, 0, 0);
    }
    .slide-left-enter {
      opacity: 0;
      transform: translate3d(100%, 0, 0);
    }
    .slide-left-leave-active {
      opacity: 0;
      transform: translate3d(-100%, 0, 0);
    }  
</style>

三、延伸閱讀 transition標(biāo)簽

transition標(biāo)簽是Vue內(nèi)置動(dòng)畫標(biāo)簽,負(fù)責(zé)在插入、更新、移除DOM元素時(shí),給元素添加樣式

注意:transition標(biāo)簽只能包含一個(gè)元素,且包含的標(biāo)簽需要設(shè)置v-if/v-show控制元素顯示

動(dòng)畫樣式類名

Vue2

進(jìn)入: .v-enter 始狀態(tài)、 .v-enter-active 進(jìn)入動(dòng)畫、 .v-enter-to 末狀態(tài)

離開:.v-leave 始狀態(tài)、.v-leave-active 離開動(dòng)畫、v-leave-to 末狀態(tài)

Vue3

進(jìn)入:.v-enter-from 始狀態(tài)、.v-enter-active 進(jìn)入動(dòng)畫、.v-enter-to 末狀態(tài)

離開:.v-leave-from 始狀態(tài)、.v-leave-active 離開動(dòng)畫、.v-leave-to 末狀態(tài)

四、拓展閱讀

官方文檔

到此這篇關(guān)于Vue進(jìn)階之利用transition標(biāo)簽實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)動(dòng)畫的文章就介紹到這了,更多相關(guān)Vue transition內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • react和vue的事件處理差異詳解

    react和vue的事件處理差異詳解

    這篇文章主要介紹了react和vue的事件處理差異,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue+Webpack完美整合富文本編輯器TinyMce的方法

    Vue+Webpack完美整合富文本編輯器TinyMce的方法

    這篇文章主要介紹了Vue+Webpack完美整合富文本編輯器TinyMce的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • Vue實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入的四種方法(resource、Axios、Fetch、Excel導(dǎo)入)

    Vue實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入的四種方法(resource、Axios、Fetch、Excel導(dǎo)入)

    本文主要介紹了Vue實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入的四種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • vue子頁(yè)面控制父頁(yè)面刷新問題

    vue子頁(yè)面控制父頁(yè)面刷新問題

    這篇文章主要介紹了vue子頁(yè)面控制父頁(yè)面刷新問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 基于vue.js中事件修飾符.self的用法(詳解)

    基于vue.js中事件修飾符.self的用法(詳解)

    下面小編就為大家分享一篇基于vue.js中事件修飾符.self的用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • vue如何給數(shù)組添加新對(duì)象并賦值

    vue如何給數(shù)組添加新對(duì)象并賦值

    這篇文章主要介紹了vue如何給數(shù)組添加新對(duì)象并賦值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue3升級(jí)常見問題詳細(xì)匯總

    vue3升級(jí)常見問題詳細(xì)匯總

    隨著vue3?的發(fā)布和越來(lái)越多項(xiàng)目的使用,之前使用?vue2?的項(xiàng)目也不能拉下,vue2?升級(jí)?vue3?迫在眉睫,下面這篇文章主要給大家介紹了關(guān)于vue3升級(jí)常見問題的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • Vue生命周期和鉤子函數(shù)的詳解與經(jīng)典面試題

    Vue生命周期和鉤子函數(shù)的詳解與經(jīng)典面試題

    Vue生命周期是指vue實(shí)例對(duì)象從創(chuàng)建之初到銷毀的過(guò)程,vue所有功能的實(shí)現(xiàn)都是圍繞其生命周期進(jìn)行的,下面這篇文章主要給大家介紹了關(guān)于Vue生命周期和鉤子函數(shù)的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • vue項(xiàng)目實(shí)現(xiàn)會(huì)議預(yù)約功能(包含某天的某個(gè)時(shí)間段和某月的某幾天)

    vue項(xiàng)目實(shí)現(xiàn)會(huì)議預(yù)約功能(包含某天的某個(gè)時(shí)間段和某月的某幾天)

    這篇文章主要介紹了vue項(xiàng)目實(shí)現(xiàn)會(huì)議預(yù)約功能(包含某天的某個(gè)時(shí)間段和某月的某幾天),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • vue2項(xiàng)目中封裝echarts地圖的優(yōu)雅方法

    vue2項(xiàng)目中封裝echarts地圖的優(yōu)雅方法

    這篇文章主要給大家介紹了關(guān)于vue2項(xiàng)目中封裝echarts地圖的優(yōu)雅方法,需要的朋友可以參考下
    2022-03-03

最新評(píng)論

兴隆县| 麟游县| 西和县| 内黄县| 盱眙县| 凤城市| 阳山县| 通化县| 大厂| 山阴县| 蓬安县| 容城县| 阳信县| 台南县| 齐齐哈尔市| 山西省| 宁远县| 炉霍县| 屯门区| 上饶县| 平武县| 兰坪| 锡林浩特市| 新巴尔虎右旗| 左贡县| 长阳| 河间市| 多伦县| 怀仁县| 霍林郭勒市| 玉山县| 政和县| 慈溪市| 清新县| 乐清市| 化德县| 民丰县| 临洮县| 咸丰县| 彭水| 报价|