好的,下面是一个简单的JavaScript树形菜单设计的示例代码。这个示例使用了HTML、CSS和JavaScript来实现一个可展开和折叠的树形菜单。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Tree Menu</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="tree-menu">
<ul>
<li>
<span class="caret">Node 1</span>
<ul class="nested">
<li>Subnode 1.1</li>
<li>Subnode 1.2</li>
</ul>
</li>
<li>
<span class="caret">Node 2</span>
<ul class="nested">
<li>Subnode 2.1</li>
<li>Subnode 2.2</li>
</ul>
</li>
<li>Node 3</li>
</ul>
</div>
<script src="script.js"></script>
</body>
</html>
.tree-menu ul {
list-style-type: none;
padding-left: 20px;
}
.caret {
cursor: pointer;
user-select: none;
}
.caret::before {
content: "\25B6";
color: black;
display: inline-block;
margin-right: 6px;
}
.caret-down::before {
transform: rotate(90deg);
}
.nested {
display: none;
}
.active {
display: block;
}
document.addEventListener('DOMContentLoaded', function() {
const toggler = document.getElementsByClassName('caret');
let i;
for (i = 0; i < toggler.length; i++) {
toggler[i].addEventListener('click', function() {
this.parentElement.querySelector('.nested').classList.toggle('active');
this.classList.toggle('caret-down');
});
}
});
<span>
元素作为展开/折叠的触发器。.nested
类初始状态为display: none;
,并且在JavaScript中正确切换.active
类。DOMContentLoaded
事件。希望这个示例能帮助你理解如何设计和实现一个简单的树形菜单。如果有任何具体问题或需要进一步的帮助,请随时提问!
高校公开课
云+社区沙龙online [新技术实践]
实战低代码公开课直播专栏
实战低代码公开课直播专栏
小程序·云开发官方直播课(数据库方向)
实战低代码公开课直播专栏
实战低代码公开课直播专栏
微搭低代码直播互动专栏
云+社区技术沙龙[第8期]
云+社区技术沙龙[第5期]
领取专属 10元无门槛券
手把手带您无忧上云