Vue3吸頂導航的實現

吸頂導航實現

【實現目標】:

在Layout頁面中,瀏覽器上下滾動時,距離頂部距離大于80px吸頂導航顯示,小于則隱藏。

【實現過程】:

  • 通過layout接口獲取分類列表內容并使用categorystore進行狀態管理,獲取到內容進行頁面渲染。

  • 在外層包裹stick,內層放置RouterLink渲染導航跳轉,使用v-on的類名增強控制 stick的show屬性

  • 安裝VueUse,參考官方手冊:VueUse,導入useScroll函數,此處只用獲取窗口的y坐標,來控制show屬性是否生效

  • 更改stick的樣式,狀態一:向上平移+完全透明;狀態二:show屬性生效時,移除平移+完全不透明

  • 此處增加了一個插值表達式 {{y}}來監視目前y坐標值

在這里插入圖片描述

<script setup>
// 獲取滾動距離
import { useScroll } from '@vueuse/core'
const { y } = useScroll(window)import { useCategoryStore } from '@/stores/categoryStore'
const categoryStore = useCategoryStore()
</script><template><div class="app-header-sticky" :class="{ show: y > 80 }"><div class="container"><RouterLink class="logo" to="/" />{{ y }}<!-- 導航區域 --><ul class="app-header-nav"><li class="home"><RouterLink to="/">首頁</RouterLink></li><li class="home" v-for="item in categoryStore.categoryList" :key="item.id"><RouterLink active-class="active" :to="`/category/${item.id}`">{{item.name}}</RouterLink></li></ul></div></div>
</template><style scoped lang="scss">
.app-header-sticky {width: 100%;height: 80px;position: fixed;left: 0;top: 0;z-index: 999;background-color: #fff;border-bottom: 1px solid #e4e4e4;// 關鍵樣式// 狀態一:往上平移自身高度 + 完全透明transform: translateY(-100%);opacity: 0;// 狀態二:移除平移 + 完全不透明&.show {transition: all 0.3s linear;transform: none;opacity: 1;}.container {display: flex;align-items: center;}.logo {width: 200px;height: 80px;background: url('@/assets/images/logo.png') no-repeat right 2px;background-size: 160px auto;}
}.app-header-nav {width: 820px;display: flex;padding-left: 40px;position: relative;z-index: 998;li {margin-right: 40px;width: 38px;text-align: center;a {font-size: 16px;line-height: 32px;height: 32px;display: inline-block;&:hover {color: pink;border-bottom: 1px solid pink;}}.active {color: pink;border-bottom: 1px solid $Color;}}
}
</style>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/81168.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/81168.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/81168.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

雙向長短期記憶網絡-BiLSTM

5月14日復盤 二、BiLSTM 1. 概述 雙向長短期記憶網絡&#xff08;Bi-directional Long Short-Term Memory&#xff0c;BiLSTM&#xff09;是一種擴展自長短期記憶網絡&#xff08;LSTM&#xff09;的結構&#xff0c;旨在解決傳統 LSTM 模型只能考慮到過去信息的問題。BiLST…

2025年Flutter項目管理技能要求

在2025年&#xff0c;隨著Flutter技術的廣泛應用和項目復雜度的提升&#xff0c;項目管理的重要性愈發凸顯。Flutter項目管理不僅需要技術能力&#xff0c;還需要良好的溝通、協調、規劃和執行能力。本文將詳細探討2025年Flutter項目管理應具備的技能要求&#xff0c;幫助項目管…

OpenCV CUDA模塊中逐元素操作------數學函數

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 在OpenCV的CUDA模塊中&#xff0c;確實存在一系列用于執行逐元素數學運算的函數&#xff0c;包括指數、對數、平方根等。這些函數對于高級圖像處…

PhpStudy | PhpStudy 工具安裝 —— Kali Linux 系統安裝 PhpStudy

&#x1f31f;想了解這個工具的其它相關筆記&#xff1f;看看這個&#xff1a;[網安工具] 服務器環境配置工具 —— PhpStudy 使用手冊 筆者備注&#xff1a;演示雖然是 Kali Linux&#xff0c;但其實 Linux 系列都可以參考此流程完成安裝。 在前面的章節中&#xff0c;筆者簡…

第6講、全面拆解Encoder、Decoder內部模塊

全面拆解 Transformer 架構&#xff1a;Encoder、Decoder 內部模塊解析&#xff08;附流程圖小測驗&#xff09; 關鍵詞&#xff1a;Transformer、Encoder、Decoder、Self-Attention、Masked Attention、位置編碼、殘差連接、多頭注意力機制 Transformer 自 2017 年誕生以來&am…

游戲引擎學習第283天:“讓‘Standing-on’成為一個更嚴謹的概念

如果同時使用多個OpenGL上下文&#xff0c;并且它們都有工作負載&#xff0c;GPU或GPU驅動程序如何決定調度這些工作&#xff1f;我注意到Windows似乎優先處理活動窗口的OpenGL上下文&#xff08;即活動窗口表現更好&#xff09;&#xff0c;挺有意思的…… 當多個OpenGL上下文…

深度學習讓魚與熊掌兼得

通常,一個大的復雜的模型的loss會低,但是擬合方面不夠,小的模型在擬合方面更好,但是loss高,我們可以通過深度學習來得到一個有著低loss的小模型 我們之前學過,peacewise linear可以用常數加上一堆這個階梯型函數得到,然后因為peacewise linear可以逼近任何function,所以理論上…

如何在 AWS 上構建支持 AVIF 的前端圖片優化方案

一、為什么使用 AVIF 圖片格式&#xff1f; 優勢點 說明 高壓縮率 在相似質量下&#xff0c;AVIF 文件比 JPEG/PNG/WebP 更小&#xff0c;能有效節省帶寬和存儲空間。 更高畫質 即使在低碼率下也能保持清晰細節&#xff0c;減少壓縮帶來的馬賽克或模糊問題。 支持透明度 …

C++中的std::allocator

C中的std::allocator 文章目錄 C中的std::allocator1.std::allocator1.1C中的placement new 和operator new1.2一個custom allocator的實現1.3使用std::allocator_traits實現allocator 1.std::allocator C中的std::allocator默默工作在CSTL中的所有容器的內存分配上&#xff0…

CodeBuddy編程新范式

不會寫&#xff1f;不想寫&#xff1f; 騰訊推出的CodeBuddy徹底解放雙手。 示例 以下是我對CodeBuddy的一個小體驗。 我只用一行文字對CodeBuddy說明了一下我的需求&#xff0c;剩下的全部就交給了CodeBuddy&#xff0c;我需要做的就是驗收結果即可。 1.首先CodeBuddy會對任…

QML學習01(設置寬度、高度、坐標點、標題,信號與槽,鍵盤事件)

QML學習 1、前言2、QML3、QML和QWidget的區別3、QtQuick下的Windows應用4、總結 1、前言 記錄一下QML學習的過程&#xff0c;方便自己日后回顧&#xff0c;也可以給有需要的人提供幫助。 2、QML QML是 Qt 框架中的一種聲明式編程語言&#xff0c;專門用于快速設計和開發用戶…

在VSCode中接入DeepSeek的指南

本文將介紹三種主流接入方式,涵蓋本地模型調用和云端API接入方案。 一、環境準備 1.1 基礎要求 VSCode 1.80+Node.js 16.x+Python 3.8+(本地部署場景)已部署的DeepSeek服務(本地或云端)1.2 安裝必備插件 # 打開VSCode插件面板(Ctrl+Shift+X) 搜索并安裝: - DeepSeek Of…

機器學習-計量經濟學

機器學習 不要事前決定變量關系&#xff0c;關鍵是誰也不知道啊&#xff0c;機器學習學習的模型&#xff08;那也不是真實的關系啊&#xff09; 這就是自然學科的好處&#xff1a;只要不斷的優化這個未知的東西&#xff08;函數&#xff09;&#xff0c;然后在數據上&#xff…

五、Linux賬號與權限管理

1、管理用戶和組賬號 1.1、用戶 1.1.1、用戶的概念及作用 在Linux系統中,用戶(User)指的是可以訪問系統資源的個體實體。每個用戶都有一個唯一的用戶賬號,用于標識和管理其在系統中的活動和訪問權限。 用戶的重要性和功能: 身份認證和訪問控制: 用戶賬號用于身份認證,確…

精益數據分析(61/126):移情階段評分體系構建與實戰案例解析

精益數據分析&#xff08;61/126&#xff09;&#xff1a;移情階段評分體系構建與實戰案例解析 在創業的移情階段&#xff0c;如何科學評估用戶需求的真實性與緊迫性&#xff0c;是決定后續產品方向的關鍵。今天&#xff0c;我們結合《精益數據分析》中的評分框架&#xff0c;…

完成反射宇宙的最后一塊拼圖:泛型集合

反射,c#的黑科技,一手打造漂亮的,專屬于自己的屬性框 之前分享的: 如何寫一個自定義屬性控件的功能,但是只是對基礎的類型,比如String,bool,int等,但是對list<T>,Vector<T>這種泛型集合類型支持的不是很好,剛好最近重新研究了一下,將這個非常重要的功能完成了. 效…

Redis--基礎知識點--26--過期刪除策略 與 淘汰策略

Redis 的過期策略和淘汰策略是內存管理的核心機制&#xff0c;分別用于處理鍵的自動失效和內存不足時的數據清理。以下是詳細說明&#xff1a; 1 、過期刪除策略&#xff08;Expiration Policy&#xff09; 處理已設置過期時間&#xff08;EXPIRE&#xff09;的鍵&#xff0c;…

第六天——貪心算法——字符串分隔

1. 題目 給定一個字符串 s&#xff0c;我們需要將其劃分為盡可能多的部分&#xff0c;使得同一字母最多出現在一個部分中。 例如&#xff1a;字符串 "ababcc" 可以劃分為 ["abab", "cc"]&#xff0c;但要避免 ["aba", "bcc&quo…

[原創](現代Delphi 12指南):[macOS 64bit App開發]: 注意“回車換行“的跨平臺使用.

[作者] 常用網名: 豬頭三 出生日期: 1981.XX.XX 企鵝交流: 643439947 個人網站: 80x86匯編小站 編程生涯: 2001年~至今[共24年] 職業生涯: 22年 開發語言: C/C++、80x86ASM、Object Pascal、Objective-C、C#、R、Python、PHP、Perl、 開發工具: Visual Studio、Delphi、XCode、…

Maven 插件參數注入與Mojo開發詳解

&#x1f9d1; 博主簡介&#xff1a;CSDN博客專家&#xff0c;歷代文學網&#xff08;PC端可以訪問&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移動端可微信小程序搜索“歷代文學”&#xff09;總架構師&#xff0c;15年工作經驗&#xff0c;精通Java編…