四层树形菜单是一种常见的用户界面元素,用于展示层次结构的数据。每一层代表一个节点,节点之间通过父子关系连接。四层树形菜单意味着最多有四层嵌套。
以下是一个使用JavaScript实现四层树形菜单的示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>四层树形菜单</title>
<style>
.tree ul {
list-style-type: none;
padding-left: 20px;
}
.tree li {
cursor: pointer;
}
.tree .node {
display: inline-block;
margin-right: 5px;
}
</style>
</head>
<body>
<div class="tree" id="tree"></div>
<script>
const data = [
{
name: 'Level 1',
children: [
{
name: 'Level 2-1',
children: [
{
name: 'Level 3-1',
children: [
{ name: 'Level 4-1' },
{ name: 'Level 4-2' }
]
},
{ name: 'Level 3-2' }
]
},
{ name: 'Level 2-2' }
]
},
{ name: 'Level 1-2' }
];
function renderTree(node, parentElement) {
const li = document.createElement('li');
const span = document.createElement('span');
span.className = 'node';
span.textContent = node.name;
li.appendChild(span);
if (node.children && node.children.length > 0) {
const ul = document.createElement('ul');
node.children.forEach(child => {
renderTree(child, ul);
});
li.appendChild(ul);
}
parentElement.appendChild(li);
span.addEventListener('click', (event) => {
event.stopPropagation();
const ul = li.querySelector('ul');
if (ul) {
ul.style.display = ul.style.display === 'none' ? 'block' : 'none';
}
});
}
const treeElement = document.getElementById('tree');
const ul = document.createElement('ul');
data.forEach(node => {
renderTree(node, ul);
});
treeElement.appendChild(ul);
</script>
</body>
</html>
react-virtualized
)来优化大数据量树形菜单的渲染性能。通过以上示例和解决方法,你应该能够实现一个功能完善的四层树形菜单。
领取专属 10元无门槛券
手把手带您无忧上云