vue實現(xiàn)導(dǎo)航標(biāo)題欄隨頁面滾動漸隱漸顯效果
項目開發(fā)中導(dǎo)航欄隨頁面滾動漸隱漸顯這一功能還是較為常用的,下面作一個用vue實現(xiàn)此功能的代碼分享。
1. 為導(dǎo)航欄元素style屬性用v-bind綁定data數(shù)據(jù)'opacityStyle'。
<div :style='opacityStyle'> 景點詳情 //內(nèi)容我就簡約了,實際開發(fā)以需求為準(zhǔn)</div>
2. data中定義opacityStyle,數(shù)據(jù)內(nèi)容是opacity透明度屬性,設(shè)置為0。
data() { return { opacityStyle:{ opacity:0 } }}
3. 監(jiān)聽scroll事件并執(zhí)行相應(yīng)方法,一般我習(xí)慣在activated生命周期時開始監(jiān)聽(activated是keepAlive屬性下產(chǎn)生的一個生命周期,在進(jìn)入頁面時)。
activated(){ window.addEventListener(’scroll’,this.handleScroll)}
4. 設(shè)計handleScroll()方法。通過獲取scroll滾動偏移值,指定數(shù)值對opacity屬性進(jìn)行計算,讓透明度聯(lián)動變化。
methods:{ handleScroll(){ const top = document.documentElement.scrollTop //獲取scroll偏移值 if(top > 45 && top <= 150){ //實際按需求取范圍 const opacity = top / 150 //對opacity作計算,透明度從起始到1隨偏移值而改變 this.opacityStyle = {opacity} //實時返回給opacityStyle } }}
5. 對scroll監(jiān)聽進(jìn)行解綁。剛剛在activated()中執(zhí)行監(jiān)聽,同樣的我們在deactivated()中移除監(jiān)聽。這一步很重要,很多人都會忽略,如果不解除將可能影響到其他頁面的scroll行為,導(dǎo)致項目產(chǎn)生bug。
deactivated(){ window.removeEventListener(’scroll’,this.handleScroll)}
以上是vue實現(xiàn)頁面滾動顯隱導(dǎo)航欄功能的代碼和邏輯,有疑惑例如keepAlive用法等不明白的地方可查看文檔另外學(xué)習(xí)~
總結(jié)
到此這篇關(guān)于vue實現(xiàn)導(dǎo)航標(biāo)題欄隨頁面滾動漸隱漸顯效果的文章就介紹到這了,更多相關(guān)vue 導(dǎo)航標(biāo)題欄滾動漸隱漸顯內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. JSP實現(xiàn)客戶信息管理系統(tǒng)2. python 批量下載bilibili視頻的gui程序3. 使用css實現(xiàn)全兼容tooltip提示框4. python numpy庫np.percentile用法說明5. 關(guān)于Mysql-connector-java驅(qū)動版本問題總結(jié)6. Ajax提交post請求案例分析7. python中HTMLParser模塊知識點總結(jié)8. PHP 面向?qū)ο蟪绦蛟O(shè)計之類屬性與類常量實現(xiàn)方法分析9. CSS自定義滾動條樣式案例詳解10. Java Spring WEB應(yīng)用實例化如何實現(xiàn)
