目录折叠展开是一种常见的用户界面交互功能,允许用户通过点击目录项来展开或折叠子目录。这种功能在网站导航、文件管理器、文档编辑器等场景中非常常见。
以下是一个简单的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>
.directory {
margin-left: 20px;
}
.sub-directory {
display: none;
}
.active {
display: block;
}
</style>
</head>
<body>
<div class="directory">
<div class="item" onclick="toggleDirectory(this)">目录1</div>
<div class="sub-directory">
<div class="item" onclick="toggleDirectory(this)">子目录1.1</div>
<div class="sub-directory">
<div class="item">子目录1.1.1</div>
</div>
</div>
<div class="item" onclick="toggleDirectory(this)">目录2</div>
<div class="sub-directory">
<div class="item">子目录2.1</div>
</div>
</div>
<script>
function toggleDirectory(element) {
const subDirectory = element.nextElementSibling;
if (subDirectory && subDirectory.classList.contains('sub-directory')) {
subDirectory.classList.toggle('active');
}
}
</script>
</body>
</html>
div
元素来表示目录和子目录。onclick
事件处理器,调用toggleDirectory
函数。.sub-directory
默认设置为display: none;
,表示子目录初始状态是折叠的。.active
类用于展开子目录,设置display: block;
。toggleDirectory
函数接收点击的目录项元素作为参数。nextElementSibling
获取紧随其后的子目录元素。active
类,从而实现展开和折叠的效果。event.stopPropagation()
阻止事件冒泡。function toggleDirectory(event) {
event.stopPropagation();
const subDirectory = event.target.nextElementSibling;
if (subDirectory && subDirectory.classList.contains('sub-directory')) {
subDirectory.classList.toggle('active');
}
}
通过以上方法,可以实现一个简单且高效的目录折叠展开功能。
领取专属 10元无门槛券
手把手带您无忧上云