使用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.mzph.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 哪些情况会触…