You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用jQuery实现响应式导航栏,点击#nav-icon1同步触发菜单下拉

解决方案

你只需要按以下3步调整代码即可实现需求:

1. 修改JavaScript逻辑

在点击事件中同步切换导航菜单的展开状态类,修改后代码如下:

$(document).ready(function(){
    $('#nav-icon1').click(function(){
        // 切换导航图标动画
        $(this).toggleClass('open');
        // 同步切换导航菜单的展开类
        $('.nav-links').toggleClass('menu-open');
    });
});

2. 修改HTML默认类

你当前的HTML中导航菜单默认加了open类,会导致移动端加载时默认展开,需要去掉默认的open类:

<!-- 把原来的 -->
<ul class="nav-links open">
<!-- 修改为 -->
<ul class="nav-links">

3. 调整CSS优先级避免类冲突

原来的全局open类会和导航图标的动画类混用,调整媒体查询内的菜单显示规则:

/* 把原来的 */
.open{
    display: flex;
}
/* 修改为 */
.nav-links.menu-open {
    display: flex;
}

可选优化(平滑动画)

如果想要更顺滑的下拉收起效果,不要用display切换,可以改为用max-height实现过渡动画,修改媒体查询内的.nav-links相关样式:

.nav-links{
    max-height: 0;
    overflow: hidden;
    transition: all 0.3s ease;
    width: 100%;
}
.nav-links.menu-open {
    /* 赋值为大于菜单实际高度的任意值即可 */
    max-height: 1000px;
}

内容的提问来源于stack exchange,提问作者james wong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 18:24:02