JavaScript 折叠树(Tree Folding)是一种常见的用户界面交互模式,用于展示层次结构的数据。它允许用户通过点击节点来展开或折叠子节点,从而控制显示的内容量,提高用户体验。
折叠树通常由以下几个部分组成:
以下是一个简单的静态折叠树实现示例,使用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>折叠树示例</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">
<ul>
<li>
<span class="node">+</span> 根节点
<ul>
<li>
<span class="node">+</span> 子节点1
<ul>
<li>叶子节点1</li>
<li>叶子节点2</li>
</ul>
</li>
<li>
<span class="node">+</span> 子节点2
<ul>
<li>叶子节点3</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<script>
document.querySelectorAll('.tree .node').forEach(node => {
node.addEventListener('click', function(event) {
event.stopPropagation();
const ul = this.nextElementSibling;
if (ul && ul.tagName === 'UL') {
ul.style.display = ul.style.display === 'none' ? '' : 'none';
this.textContent = this.textContent === '+' ? '-' : '+';
}
});
});
</script>
</body>
</html>
localStorage
)保存节点状态,并在页面加载时恢复状态。event.stopPropagation()
阻止事件冒泡。通过以上方法,可以有效解决折叠树在实际应用中遇到的常见问题,提升用户体验。
领取专属 10元无门槛券
手把手带您无忧上云