响应式设计没有响应

Responisve design is not responding

我是响应式设计的新手,正在尝试使用媒体查询。我正在尝试使用媒体查询使我的导航栏响应。问题是,当我在移动视图中调整页面大小时,导航栏会显示 SPAN 标记,但单击后它应该会下拉菜单列表。我试图在此过程中使用 jQuery。我的代码如下:

HTML 代码

<span class="menu-trigger">MENU </span>
<nav class = "nav-main">          
  <ul>
    <li>
      <a href = "#" class = "nav-item"> HOME</a>                              
    </li>
    <li>
      <a href = "#" class = "nav-item">ABOUT US </a>
    </li>
    <li>
      <a href = "#" class = "nav-item">PORTFOLIO </a>
    </li>
    <li>
      <a href = "#" class = "nav-item">SERVICES </a>
    </li>
    <li>
      <a href = "#" class = "nav-item">CONTACT US </a>
    </li>
  </ul>
</nav>

CSS 代码

.nav-main {
    width:100%;
    background-color: #222;
    height:70px;
    color:#fff;
}

@media screen and (max-width: 480px){    
    .menu-trigger{
        display:block;   
    }    
    .nav-main > ul > li{
        float:none;
        border-bottom: 2px solid #d5dce4
    }
    .nav-main {
        display:none;   
    }       
    .nav-main > ul > li:last-child{ 
        border-bottom: none;
    }         
}

JQUERY 代码

<script type ="text/javascript">
    jQuery(".menu-trigger").click(function(){
        jQuery(".nav-main").slideToggle();
    });
</script>

现在,当使用移动尺寸时,内容 nav-main 确实消失了,只显示 SPAN,但是当点击 SPAN 时,它应该有一个切换效果,在导航栏中显示列表的其余部分,但什么也没有似乎发生了。

更新--- JSFIDDLE - https://jsfiddle.net/k4ytvyef/

在没有看到您的脚本位置的情况下,我只能假设您可能已将 jquery 代码放在 html 元素之上。

在 jsbin 上试一试,当 jquery 选择器加载后能够找到该元素时,您的代码可以正常工作。

要在不将代码移动到页面底部的情况下实现此目的,您可以使用 jquery 的就绪事件包装脚本,如下所示:

jQuery( document ).ready(function() {
   jQuery(".menu-trigger").click(function(){
        jQuery(".nav-main").slideToggle();

    });
});

编辑:

对于上面询问为什么它在 jsfiddle 上不起作用的评论:

JQuery 不是原生 javascript。为了在任何测试环境中运行此功能,您需要添加 jquery 库,以便它可以 运行 它与您的代码一起使用。