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

js制作折叠菜单栏

要在JavaScript中制作一个折叠菜单栏,你需要结合HTML和CSS来完成。以下是一个简单的示例:

HTML结构:

代码语言:txt
复制
<ul class="menu">
    <li>
        <a href="#">菜单1</a>
        <ul class="submenu">
            <li><a href="#">子菜单1-1</a></li>
            <li><a href="#">子菜单1-2</a></li>
        </ul>
    </li>
    <li>
        <a href="#">菜单2</a>
        <ul class="submenu">
            <li><a href="#">子菜单2-1</a></li>
            <li><a href="#">子菜单2-2</a></li>
        </ul>
    </li>
</ul>

CSS样式:

代码语言:txt
复制
.menu, .submenu {
    list-style-type: none;
    padding: 0;
}

.menu > li {
    position: relative;
}

.submenu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background-color: #f9f9f9;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
}

.submenu li {
    width: 100%;
}

.submenu li a {
    padding: 12px 16px;
    display: block;
    text-decoration: none;
    color: black;
}

.submenu li a:hover {
    background-color: #f1f1f1;
}

JavaScript交互:

代码语言:txt
复制
document.addEventListener('DOMContentLoaded', function() {
    var menuItems = document.querySelectorAll('.menu > li');

    menuItems.forEach(function(menuItem) {
        menuItem.addEventListener('click', function(e) {
            e.stopPropagation(); // 阻止事件冒泡
            var submenu = this.querySelector('.submenu');
            if (submenu) {
                submenu.style.display = submenu.style.display === 'block' ? 'none' : 'block';
            }
        });
    });

    // 点击页面其他地方关闭菜单
    document.addEventListener('click', function() {
        var submenus = document.querySelectorAll('.submenu');
        submenus.forEach(function(submenu) {
            submenu.style.display = 'none';
        });
    });
});

基础概念:

  • HTML: 超文本标记语言,用于创建网页的结构。
  • CSS: 层叠样式表,用于设置网页的布局和样式。
  • JavaScript: 一种脚本语言,用于添加交互性和动态效果。

优势:

  • 用户界面更加友好和直观。
  • 提高网站的可用性和用户体验。
  • 可以通过JavaScript轻松添加动态交互。

应用场景:

  • 网站导航菜单。
  • 移动应用的侧边栏菜单。
  • 需要层次结构展示信息的页面。

常见问题及解决方法:

  • 菜单不显示或显示不正确: 检查CSS样式是否正确应用,确保没有其他样式冲突。
  • 点击菜单项不展开或收起: 检查JavaScript事件监听器是否正确绑定,以及事件处理函数是否有误。
  • 菜单在点击其他地方不关闭: 确保在文档上绑定了点击事件来关闭所有菜单,并且阻止了事件冒泡。

通过上述代码和解释,你可以创建一个基本的折叠菜单栏,并根据需要进行样式和功能的调整。

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

相关·内容

没有搜到相关的沙龙

领券