首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js+树形菜单效果

要在JavaScript中实现树形菜单效果,你可以使用HTML、CSS和JavaScript来构建一个交互式的树形结构。以下是一个简单的实现示例:

HTML结构

代码语言:txt
复制
<ul id="treeMenu">
    <li>
        <span class="toggle">+</span> <span class="menu-label">菜单1</span>
        <ul class="sub-menu">
            <li><span class="menu-label">子菜单1-1</span></li>
            <li><span class="menu-label">子菜单1-2</span></li>
        </ul>
    </li>
    <li>
        <span class="toggle">+</span> <span class="menu-label">菜单2</span>
        <ul class="sub-menu">
            <li><span class="menu-label">子菜单2-1</span></li>
            <li>
                <span class="toggle">+</span> <span class="menu-label">子菜单2-2</span>
                <ul class="sub-menu">
                    <li><span class="menu-label">子菜单2-2-1</span></li>
                </ul>
            </li>
        </ul>
    </li>
</ul>

CSS样式

代码语言:txt
复制
#treeMenu {
    list-style-type: none;
    padding-left: 20px;
}

.sub-menu {
    display: none;
    list-style-type: none;
    padding-left: 20px;
}

.toggle {
    cursor: pointer;
    margin-right: 5px;
}

JavaScript交互

代码语言:txt
复制
document.addEventListener('DOMContentLoaded', function() {
    var toggles = document.querySelectorAll('.toggle');

    toggles.forEach(function(toggle) {
        toggle.addEventListener('click', function() {
            var subMenu = this.nextElementSibling.nextElementSibling;
            if (subMenu.style.display === 'none' || subMenu.style.display === '') {
                subMenu.style.display = 'block';
                this.textContent = '-';
            } else {
                subMenu.style.display = 'none';
                this.textContent = '+';
            }
        });
    });
});

解释

  1. HTML: 创建了一个嵌套的无序列表来表示树形菜单结构。每个可展开的菜单项前都有一个span元素作为切换按钮。
  2. CSS: 设置了基本的样式,其中.sub-menu默认是隐藏的,.toggle用于显示切换按钮。
  3. JavaScript: 当文档加载完成后,为每个切换按钮添加点击事件监听器。点击时,切换相应子菜单的显示状态,并改变切换按钮的符号。

优势

  • 交互性: 用户可以展开和折叠菜单,提高用户体验。
  • 可扩展性: 可以轻松添加更多的菜单项和子菜单。
  • 简洁性: 使用简单的HTML、CSS和JavaScript即可实现。

应用场景

  • 网站导航: 适用于需要多层次导航的网站。
  • 后台管理系统: 管理员可以通过树形菜单快速访问不同的管理功能。
  • 文件浏览器: 显示文件和文件夹的层次结构。

这个基础示例可以根据具体需求进行扩展,例如添加动画效果、键盘导航支持、动态加载菜单项等。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券