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

Vue 解決路由過渡動畫抖動問題(實例詳解)

 更新時間:2020年01月05日 09:39:23   作者:WahFung  
這篇文章主要介紹了Vue 解決路由過渡動畫抖動問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下

前言

Vue-Router 作為 Vue 的核心模塊,它為我們提供了基于組件的路由配置、路由參數(shù)等功能,讓單頁面應(yīng)用變得更易于管理。良好的路由管理尤為重要,比如路由攔截、路由懶加載、路由權(quán)限等都在開發(fā)中起著至關(guān)重要的作用。同時路由還支持視圖過渡效果,沒有添加過渡動畫的路由切換會感覺很生硬,為了提高用戶體驗,路由過渡還是很有必要的。畢竟做出來,自己看著也舒服。

過渡動效文檔:https://cn.vuejs.org/v2/guide/transitions.html

過渡動畫抖動

代碼片段

這里為路由添加一個淡入淡出的過渡效果

<div id="app">
 <main class="app-main">
 <Topbar />
 <transition name="fade">
 <router-view />
 </transition>
 </main>
</div>
.fade-enter,
.fade-leave-to{
 visibility: hidden;
 opacity: 0;
}
.fade-enter-active,
.fade-leave-active{
 transition: opacity .2s ease;
}
.fade-enter-to,
.fade-leave{
 visibility: visible;
 opacity: 1;
}

效果


圖中可以很明顯的看到,切換路由時,頁面會發(fā)生抖動,而且抖動的還不小,看著強迫癥都犯了。
那么問題來了,為什么會出現(xiàn)這種情況?

過程

發(fā)現(xiàn)問題

排除代碼問題后,想到的可能是布局問題引發(fā)的這種情況,于是在chrome的調(diào)試工具中,一邊切換路由一邊觀察布局的變化,終于找到了一點蹊蹺



仔細(xì)觀察html的結(jié)構(gòu),會發(fā)現(xiàn)在路由過渡的過程中是會同時存在兩個路由,一個是即將進(jìn)入的路由,一個是即將消失的路由,這時想到有沒有可能是其中一個路由占位導(dǎo)致抖動?

印證猜想

為了方便觀察布局情況,將過渡的時間調(diào)大到30s,再次重復(fù)上面的操作



在緩慢的過渡,可以更加清晰的看到,在切換到下一個路由(fade-enter-to)時,上一個路由(fade-leave-to)會占位使得下一個路由的位置下移,所以在快速過渡的情況才發(fā)生類似抖動的效果
既然問題找到了,那就找辦法來解決它!

解決問題

只需要給fade-leave-to路由添加 display:none,讓其在消失時不占位就可以解決問題。當(dāng)然還可以使用定位來脫離文檔流來解決,但定位之后偏移量等都需要計算,不太推薦。

.fade-enter{
 visibility: hidden;
 opacity: 0;
}
.fade-leave-to{
 display: none;
}
.fade-enter-active,
.fade-leave-active{
 transition: opacity .2s ease;
}
.fade-enter-to,
.fade-leave{
 visibility: visible;
 opacity: 1;
}

最后效果

總結(jié)

以上所述是小編給大家介紹的Vue 解決路由過渡動畫抖動問題,希望對大家有所幫助!

相關(guān)文章

  • 詳解VUE 對element-ui中的ElTableColumn擴(kuò)展

    詳解VUE 對element-ui中的ElTableColumn擴(kuò)展

    本篇文章主要介紹了詳解VUE 對element-ui中的ElTableColumn擴(kuò)展,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • vue中的addEventListener和removeEventListener用法說明

    vue中的addEventListener和removeEventListener用法說明

    這篇文章主要介紹了vue中的addEventListener和removeEventListener用法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 深入解析Vue 組件命名那些事

    深入解析Vue 組件命名那些事

    本篇文章主要介紹了深入解析Vue 組件命名那些事,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • 在移動端使用vue-router和keep-alive的方法示例

    在移動端使用vue-router和keep-alive的方法示例

    這篇文章主要介紹了在移動端使用vue-router和keep-alive的方法示例,vue-router與keep-alive提供的路由體驗與移動端是有一定差別的,感興趣的小伙伴們可以參考一下
    2018-12-12
  • vue項目前端埋點的實現(xiàn)

    vue項目前端埋點的實現(xiàn)

    這篇文章主要介紹了vue項目前端埋點的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Vue3中Provide?/?Inject的實現(xiàn)原理分享

    Vue3中Provide?/?Inject的實現(xiàn)原理分享

    provide和inject主要為高階插件/組件庫提供用例,這篇文章主要給大家介紹了關(guān)于Vue3中Provide?/?Inject的實現(xiàn)原理,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02
  • 基于vue+echarts數(shù)據(jù)可視化大屏展示的實現(xiàn)

    基于vue+echarts數(shù)據(jù)可視化大屏展示的實現(xiàn)

    這篇文章主要介紹了基于vue+echarts數(shù)據(jù)可視化大屏展示的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Vue布置導(dǎo)航守衛(wèi)獲取用戶信息

    Vue布置導(dǎo)航守衛(wèi)獲取用戶信息

    這篇文章主要為大家介紹了Vue布置導(dǎo)航守衛(wèi)獲取用戶信息,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • 詳解幾十行代碼實現(xiàn)一個vue的狀態(tài)管理

    詳解幾十行代碼實現(xiàn)一個vue的狀態(tài)管理

    這篇文章主要介紹了詳解幾十行代碼實現(xiàn)一個vue的狀態(tài)管理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • vue中eventbus被多次觸發(fā)以及踩過的坑

    vue中eventbus被多次觸發(fā)以及踩過的坑

    這篇文章主要介紹了vue中eventbus被多次觸發(fā)以及踩過的坑,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12

最新評論

恩平市| 江安县| 乌海市| 贡山| 重庆市| 邵阳市| 金阳县| 南溪县| 宜川县| 股票| 乌兰浩特市| 旅游| 辽阳县| 淮安市| 汾西县| 黄大仙区| 乌拉特后旗| 百色市| 诏安县| 聂拉木县| 洱源县| 赤壁市| 滨州市| 叶城县| 尼玛县| 无棣县| 宁津县| 福清市| 孙吴县| 旅游| 桂林市| 化德县| 夏河县| 漯河市| 策勒县| 舞阳县| 读书| 雅安市| 法库县| 监利县| 彰化市|