使用Vue實現一個當鼠標懸浮時出現,鼠標離開時消失的雙層菜單

前言

分享一個基于Vue實現一個當鼠標懸浮時出現,鼠標離開時消失的雙層菜單。同時也是為了以后需要類似的需求時,可以提供一個實現思路,以及可以快速ctrl+c和ctrl+v操作,提高工作效率~

一、示例代碼

(1)/src/views/Example/DiyNavMenu/index.vue

<template><div class="index"><ul><liv-for="(item, index) in tabList":key="index":class="{ 'active-tab': index == activeTabIndex }"@mouseover="item.name == '項目管理'? (item.isVisibleMenuBox = true): (item.isVisibleMenuBox = false)"@mouseleave="item.isVisibleMenuBox = false;isVisibleSubMenuBox = false;isMenuHover = -1;"><span class="tab-label">{{ item.name }}</span><div class="menu" v-show="item.isVisibleMenuBox"><div class="menu-box"><div class="menu-box-cascader"><divclass="menu-item"v-for="(menuItem, menuIndex) in menuList":key="menuIndex":class="{ 'menu-hover': menuIndex == isMenuHover }"@mouseover="handleMenuMouseOver(menuItem, menuIndex)"><span>{{ menuItem.label }}</span><i class="el-icon-arrow-right" /></div></div><div class="menu-box-cascader" v-show="isVisibleSubMenuBox"><divclass="menu-item"v-for="(subMenuItem, subMenuIndex) in subMenuList":key="subMenuIndex"@click="handleSubMenuClick(subMenuItem, subMenuIndex)"><span>{{ subMenuItem.label }}</span></div></div></div></div></li></ul></div>
</template><script>
export default {data: () => ({// 默認激活的頁簽索引activeTabIndex: 1,// 頁簽列表tabList: [{name: '系統中心',isVisibleMenuBox: false,},{name: '項目管理',isVisibleMenuBox: false,},{name: '用戶管理',isVisibleMenuBox: false,},],// 菜單列表menuList: [{label: '卡拉OK項目工程',children: [{label: '卡拉一期',},{label: '卡拉二期',},{label: '卡拉三期',},{label: '卡拉四期',},{label: '卡拉五期',},],},{label: '芭比Q項目工程',children: [{label: '芭比一期',},{label: '芭比二期',},],},{label: '最流批的項目工程',children: [{label: '最流批一期',},],},],// 菜單索引isMenuHover: -1,// 子菜單是否可見isVisibleSubMenuBox: false,// 子菜單列表subMenuList: [],}),methods: {/*** 菜單鼠標懸浮事件*/handleMenuMouseOver(menuItem, menuIndex) {this.isMenuHover = menuIndexif (menuItem.children) {this.isVisibleSubMenuBox = truethis.subMenuList = menuItem.children}},/*** 子菜單點擊事件*/handleSubMenuClick(subMenuItem, subMenuIndex) {console.log('handleSubMenuClick ->', subMenuItem, subMenuIndex)},},
};
</script><style lang="less" scoped>
.index {width: 100%;height: 35px;display: flex;justify-content: center;background-color: #fff;border-bottom: 1px solid #eee;ul {min-width: 300px;height: 100%;display: flex;justify-content: space-between;li {height: 100%;display: flex;align-items: center;justify-content: center;list-style: none;position: relative;.tab-label {padding: 0px 10px;font-size: 14px;line-height: 34px;border-bottom: 1px solid transparent;}.tab-label:hover {border-bottom: 1px solid #072fbe;cursor: pointer;color: #072fbe;}.menu {position: absolute;top: 35px;left: 0;z-index: 10;width: 150px;height: auto;background-color: #fff;.menu-box {position: relative;display: flex;width: 100%;height: auto;.menu-box-cascader {width: 100%;height: 200px;background-color: #fff;border-radius: 5px;box-shadow: 1px 2px 8px 0 rgba(0, 0, 0, 0.15);&:nth-of-type(2) {position: absolute;top: 0;left: 152px;width: 180px;// background-color: #faf;}.menu-item {position: relative;width: 100%;height: 28px;display: flex;align-items: center;justify-content: center;cursor: pointer;span {font-size: 13px;}.el-icon-arrow-right {font-size: 12px;position: absolute;right: 2px;}&:hover {background-color: #072fbe1a;span, .el-icon-arrow-right {color: #072fbe;}}}.menu-hover {background-color: #072fbe1a;span, .el-icon-arrow-right {color: #072fbe;}}}}}}.active-tab {// background-color: aqua;.tab-label {border-bottom: 1px solid #072fbe;color: #072fbe;}}}
}
</style>

二、運行效果

// Todo

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

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

相關文章

Linux C/C++ 分析網絡流量(十六進制TCP數據包分析)

在分析TCP數據包時&#xff0c;理解TCP協議的工作原理和報文格式是關鍵。TCP是一種面向連接的、提供可靠的、端到端的字節流傳輸服務。其頭部結構包括源端口、目標端口、序列號、確認應答號等字段。序列號是在建立連接時由計算機生成的隨機數作為初始值&#xff0c;每發送一次數…

使用Pytorch從零開始實現BERT

生成式建模知識回顧: [1] 生成式建模概述 [2] Transformer I&#xff0c;Transformer II [3] 變分自編碼器 [4] 生成對抗網絡&#xff0c;高級生成對抗網絡 I&#xff0c;高級生成對抗網絡 II [5] 自回歸模型 [6] 歸一化流模型 [7] 基于能量的模型 [8] 擴散模型 I, 擴散模型 II…

前端食堂技術周刊第 107 期:技術播客節、Deno Cron、FEDAY、XState v5、Electron 2023 生態系統回顧

美味值&#xff1a;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f; 口味&#xff1a;烤椰拿鐵 食堂技術周刊倉庫地址&#xff1a;https://github.com/Geekhyt/weekly 大家好&#xff0c;我是童歐巴。歡迎來到前端食堂技術周刊&#xff0c;我們先來看下…

圖論與網絡優化3

CSDN 有字數限制&#xff0c;因此筆記分別發布&#xff0c;目前&#xff1a; 【筆記1】概念與計算、樹及其算法【筆記2】容量網絡模型、遍歷性及其算法【筆記3】獨立集及其算法 6 獨立集及其算法 6.1 獨立集和覆蓋 6.1.1 獨立數和覆蓋數 獨立集&#xff1a;設 S ? V ( G …

PaddleDetection系列2--NCCL安裝及測試

NCCL安裝及測試 1 系統信息查看1.1 查看本機的操作系統和位數信息&#xff1a;1.2 確認處理器架構1.3 確認cuda版本 2 NCCL安裝2.1 根據上面的系統架構以及CUDA版本&#xff0c;進入[官網](https://developer.nvidia.com/nccl/nccl-download)下載匹配的nccl&#xff0c;若想獲取…

力扣44題通配符匹配題解

44. 通配符匹配 - 力扣&#xff08;LeetCode&#xff09; 給你一個輸入字符串 (s) 和一個字符模式 (p) &#xff0c;請你實現一個支持 ? 和 * 匹配規則的通配符匹配&#xff1a; ? 可以匹配任何單個字符。* 可以匹配任意字符序列&#xff08;包括空字符序列&#xff09;。 …

【ITK庫學習】使用itk庫進行圖像濾波ImageFilter:梯度Gradient

目錄 1、itkGradientImageFilter2、itkGradientMagnitudeImageFilter 梯度強度3、itkGradientMagnitudeRecursiveGaussianImageFilter 帶濾波的梯度強度4、itkDerivativeImageFilter 不帶濾波的導函數 1、itkGradientImageFilter 該類是一個基類&#xff0c;用于使用方向導數計…

C++筆試題之回文數的判斷

“回文”是指正讀反讀都能讀通的句子&#xff0c;它是古今中外都有的一種修辭方式和文字游戲&#xff0c;如“我為人人&#xff0c;人人為我”等。在數學中也有這樣一類數字有這樣的特征&#xff0c;成為回文數&#xff08;palindrome number&#xff09;。 設n是一任意自然數…

MSSQL 程序集使用方法

1.C# 寫一個程序 1.1新建一個項目【類庫【.Net FrameWork】 1.2編寫代碼 刪除 namespace ApiSQLClass { } 代碼如下&#xff1a;【具體調用API模式根據具體編寫】 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.…

1. 使用poll或epoll創建echo服務器

1. 說明&#xff1a; 此篇博客主要記錄一種客戶端實現方式&#xff0c;和兩種使用poll或者epoll分別創建echo服務器的方式&#xff0c;具體可看代碼注釋&#xff1a; 2. 相關代碼&#xff1a; 2.1 echoClient.cpp #include <iostream> #include <cstdio> #incl…

C語言中的 sizeof 運算符

在 C 語言中&#xff0c;sizeof 是一個運算符&#xff0c;用于獲取給定類型或變量的字節大小。它返回一個 size_t 類型的值&#xff0c;表示以字節為單位的對象大小。 sizeof 運算符有以下特點&#xff1a; 用法&#xff1a;sizeof 運算符可以應用于數據類型或表達式。計算靜…

酷開科技以創新為動力用大數據提升品牌認知

在21世紀的今天&#xff0c;我們生活在一個被互聯網深深改變的世界。互聯網不僅改變了我們的生活方式&#xff0c;也正在改變我們的思維方式和工作方式。而互聯網作為一種新的發展趨勢&#xff0c;更是為我們提供了無數的機會和無限可能性&#xff0c;從電子商務時代到社交網絡…

CSP-何以包郵?

題目描述 新學期伊始&#xff0c;適逢頓頓書城有購書滿 x 元包郵的活動&#xff0c;小 P 同學欣然前往準備買些參考書。 一番瀏覽后&#xff0c;小 P 初步篩選出 n 本書加入購物車中&#xff0c;其中第 i 本&#xff08;1≤i≤n&#xff09;的價格為 ai 元。 考慮到預算有限&am…

scala編碼

1、Scala高級語言 Scala簡介 Scala是一門類Java的多范式語言&#xff0c;它整合了面向對象編程和函數式編程的最佳特性。具體來講Scala運行于Java虛擬機&#xff08;JVM)之上&#xff0c;井且兼容現有的Java程序&#xff0c;同樣具有跨平臺、可移植性好、方便的垃圾回收等特性…

ubuntu server 20.04 備份和恢復 系統 LTS

ubuntu server 20.04 備份和恢復 系統 LTS tar命令系統備份與恢復&#xff08;還原or新裝&#xff09; 備份系統 cd / su root tar cvpzf backup.tgz --exclude/tmp --exclude/run --exclude/dev --exclude/snap --exclude/proc --exclude/lostfound --exclude/backup.tgz …

啟動游戲出現concrt140.dll錯誤的8種解決方法

在計算機使用過程中&#xff0c;我們經常會遇到一些錯誤提示&#xff0c;其中之一就是找不到concrt140.dll文件。這個錯誤通常會導致程序無法正常運行&#xff0c;給用戶帶來困擾。本文將介紹找不到concrt140.dll無法繼續執行代碼的8個方法&#xff0c;同時探討concrt140.dll丟…

LinuxBasicsForHackers筆記 -- 文件系統和存儲設備管理

設備目錄/dev Linux 有一個特殊的目錄&#xff0c;其中包含代表每個連接設備的文件&#xff1a;相應命名的 /dev 目錄。 /dev中有很多設備列表。 特別令人感興趣的是設備 sda1、sda2、sda3、sdb 和 sdb1&#xff0c;它們通常是硬盤驅動器及其分區以及 USB 閃存驅動器及其分區…

理解基于 Hadoop 生態的大數據技術架構

轉眼間&#xff0c;一年又悄然而逝&#xff0c;時光荏苒&#xff0c;歲月如梭。當回首這段光陰&#xff0c;不禁感嘆時間的匆匆&#xff0c;仿佛只是一個眨眼的瞬間&#xff0c;一年的旅程已成為過去&#xff0c;而如今又到了畫餅的時刻了 &#xff01; 基于 Hadoop 生態的大數…

固態硬盤SSD

目錄 1.2 組成1.3 讀寫性能特性1.4 與機械硬盤相比的特點1.5 磨損均衡技術 \quad \quad SSD基于閃存技術Flash Memory, 屬于電可擦除ROM, 即EEPROM \quad 1.2 組成 \quad \quad \quad 系統對固態硬盤的讀寫是以頁為單位的 固態硬盤里的塊相當于機械硬盤里的磁道 固態硬盤里的頁…

Redis基礎系列-持久化

Redis基礎系列-持久化 文章目錄 Redis基礎系列-持久化1. 什么是持久化2. 為什么要持久化3. 持久化的兩種方式3.1 持久化方式1&#xff1a;RDB(redis默認持久化方式)3.11 配置步驟-自動觸發3.12 配置步驟-手動觸發3.12 優點3.13 缺點3.14 檢查和修復RDB快照文件3.15 哪些情況會觸…