欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

JavaScript

當(dāng)前位置:主頁 > 網(wǎng)絡(luò)編程 > JavaScript >

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

來源:本站原創(chuàng)|時間:2020-01-10|欄目:JavaScript|點擊: 次

前言

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ā)生抖動,而且抖動的還不小,看著強(qiáng)迫癥都犯了。
那么問題來了,為什么會出現(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 解決路由過渡動畫抖動問題,希望對大家有所幫助!

上一篇:Vue 實現(xiàn)簡易多行滾動&quot;彈幕&quot;效果

欄    目:JavaScript

下一篇:uni-app如何實現(xiàn)增量更新功能

本文標(biāo)題:Vue 解決路由過渡動畫抖動問題(實例詳解)

本文地址:http://mengdiqiu.com.cn/a1/JavaScript/9313.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有