树形菜单在Web开发中很常见,可以用于导航菜单、文件浏览器等功能。在本文中,我们将使用JavaScript来制作一个简单的树形菜单。
一、准备工作
在开始编写树形菜单之前,首先需要准备好HTML和CSS部分。我们可以使用一个无序列表(ul)和一些CSS样式来创建一个基本的树形结构。
```
/* 树形菜单样式 */
.tree,
.tree ul {
list-style: none;
margin: 0;
padding: 0;
}
.tree li {
margin: 0;
padding: 10px 5px;
position: relative;
}
.tree li::before,
.tree li::after {
content: '';
left: -20px;
position: absolute;
right: auto;
}
.tree li::before {
border-left: 1px solid #999;
bottom: 50px;
height: 100%;
top: 0;
width: 1px;
}
.tree li::after {
border-top: 1px solid #999;
height: 20px;
top: 25px;
width: 25px;
}
.tree li:only-child::before {
display: none;
}
.tree li:last-child::before {
height: 30px;
}
.tree li:last-child::after {
height: 20px;
top: -10px;
width: 25px;
}
/* 菜单项样式 */
.tree li a {
background-color: #f8f8f8;
border: 1px solid #ccc;
border-radius: 4px;
color: #333;
display: inline-block;
padding: 5px 10px;
text-decoration: none;
transition: all 0.2s ease-in-out;
}
.tree li a:hover,
.tree li a:focus {
background-color: #e8e8e8;
}
菜单项1
子菜单项1
子菜单项2
子菜单项3
菜单项2
子菜单项4
子菜单项5
菜单项3
```
以上代码中,我们使用了一个无序列表和一些CSS样式来创建一个树形结构。菜单项均使用``````标签表示,并且通过嵌套```
```和```
```标签来实现层级关系。
二、编写JavaScript代码
接下来,我们需要编写一些JavaScript代码来实现树形菜单的交互效果。具体的代码如下:
```
```
在以上代码中,我们首先使用```document.querySelectorAll('.tree li')```获取到所有的菜单项,并使用```()```遍历每个菜单项。然后,我们查找每个菜单项下的子菜单,并为拥有子菜单的菜单项添加一个可展开的图标。
通过为图标添加点击事件,我们可以切换子菜单的显示状态。具体做法是给子菜单添加一个名为「expanded」的CSS类,该类将修改子菜单的显示样式。
三、运行效果
经过上述准备工作和编写JavaScript代码,我们已经完成了一个简单的树形菜单。通过打开浏览器查看页面,并点击菜单项旁边的图标,我们可以看到子菜单的展开与收起效果。
到此,我们详细介绍了如何使用JavaScript制作一个简单的树形菜单。希望本文对你理解和应用树形菜单有所帮助。如果你有任何问题或建议,欢迎留言讨论。
参考链接:
- [MDN: HTML]()
- [MDN: CSS]()
- [MDN: JavaScript]()
作者:百度经验作者
来源:百度经验(链接)
版权声明:本文为原创文章,版权归作者所有。未经作者允许,不得转载。
在排版中,ensp(半角空格)是一种常见的间隔符号,它与其他空格有着不同的特点和应用方式。本文将从几个不同的角度,介绍ensp的正确使用方法,并结合示例进行格式演示。1. 什么是ensp?ensp是英语中的一个空格单位,等于字符宽度的一半,
云闪付作为一款颇受欢迎的移动支付应用,近年来推出了许多吸引用户的活动和特权。其中之一就是预约金币。预约金币是一种特殊的奖励形式,用户可以在特定时间段内预约并参与活动,从而获得一定数量的金币。首先,我们来详细了解预约金币的获取方式。用户需要在
导言:在日常使用手机时,电池是一个不可或缺的重要组成部分。除了功能上的保证外,有些用户还希望能够在电池显示上展示自己的个性和喜好。对于oppo手机用户而言,是否了解如何设置电池样式呢?本文将为大家详细介绍oppo手机的电池样式设置方法,并分
手机上如何用微信快速登录拼多多?1首先直接点击桌面上的拼多多图标2再次进入拼多多软件以后,然后点击右下角的个人中心3直接进入到个人中心以后,在最上方有一个然后点击登录按钮,直接点击它4后再可能会再次出现新的界面,有登录按钮,点击它5而后叮嘱
Word中的条形图是一种常用的数据展示方式,但有时我们需要根据需要对条形图的顺序进行调整。本文将为您详细介绍如何在Word中调整条形图的顺序。首先,在Word中插入要调整顺序的条形图。可以通过插入菜单中的「图表」选项选择条形图,并将数据输入
微信摇一摇功能让我们可以通过手机摇晃来发现周围的歌曲,但有时候我们可能会错过一首喜欢的歌曲,这时候该怎么办呢?本文将为大家介绍几种方法来找回因微信摇一摇错过的歌曲。1. 查看历史记录打开微信,进入摇一摇界面,点击右上角的"摇到的歌曲",这里
随着工作和生活节奏的加快,我们常常需要依赖打卡来记录工作时间、学习时长或健身次数等。为了提高效率和准确性,越来越多的人开始使用智能打卡app。然而,市面上的打卡应用琳琅满目,选择一款最好用的并不容易。在本文中,我将为大家解密三款最好用的智能
别人给我转账显示存在风险怎么解除?支付宝转账提示转账有风险。登录支付宝官网修改密码即可联系。但是,如果转账提示存在无法转账的风险,您可以通过打开 "钱包 "函数在 "我和接口并取消 "帮助中心 "。需要注意的是,风险提示是系统为保证您的财产
AI制作产品标签在现代商业环境中,产品标签被视为一种重要的营销工具,可以向消费者传达关于产品的信息,并帮助他们做出购买决策。然而,传统的产品标签制作过程通常耗时且容易出错。随着人工智能(AI)技术的快速发展,越来越多的企业开始探索使用AI来
在日常的数据分析工作中,我们经常会遇到需要还原原始数据的情况。在Excel中,通过计算标准差和均值,我们可以较为准确地估算出原始数据的分布情况。首先,我们需要收集一组已知数据,并计算其标准差和均值。以某一变量X为例,将其数据录入Excel的