当前位置:首页 > 行业动态 > 正文

jquery实现导航栏

在当今的移动互联网时代,手机导航已经成为了网站和应用程序的重要组成部分,jQuery作为一个轻量级的JavaScript库,可以帮助我们快速地实现手机导航功能,本文将详细介绍如何使用jQuery编写手机导航。

1、准备工作

在使用jQuery编写手机导航之前,我们需要先引入jQuery库,可以通过以下方式引入:

<script src="https://code.jquery.com/jquery3.6.0.min.js"></script>

为了方便操作DOM元素,我们还需要引入Bootstrap框架,通过以下方式引入:

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

2、创建导航栏

我们需要创建一个包含导航链接的导航栏,可以使用Bootstrap的navbar组件来实现:

<nav class="navbar navbarinverse">
  <div class="containerfluid">
    <div class="navbarheader">
      <button type="button" class="navbartoggle" datatoggle="collapse" datatarget="#myNavbar">
        <span class="iconbar"></span>
        <span class="iconbar"></span>
        <span class="iconbar"></span>                        
      </button>
      <a class="navbarbrand" href="#">Logo</a>
    </div>
    <div class="collapse navbarcollapse" id="myNavbar">
      <ul class="nav navbarnav">
        <li class="active"><a href="#">首页</a></li>
        <li><a href="#">关于我们</a></li>
        <li><a href="#">产品</a></li>
        <li><a href="#">联系我们</a></li>
      </ul>
    </div>
  </div>
</nav>

3、添加响应式样式

接下来,我们需要为导航栏添加响应式样式,可以使用Bootstrap的媒体查询(Media Queries)来实现:

@media screen and (maxwidth: 768px) {
  .navbarheader {
    float: none;
  }
  .navbarleft, .navbarright {
    float: none !important;
  }
  .navbartoggle {
    display: block;
  }
  .navbarcollapse {
    bordertop: 1px solid transparent;
    boxshadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
  }
  .navbarfixedtop {
    top: 0;
    borderwidth: 0 0 1px;
  }
  .navbarcollapse.collapse {
    display: none!important;
  }
  .navbarnav {
    float: none!important;
    margin: 7.5px 15px;
  }
  .navbarnav > li {
    float: none;
  }
  .navbarnav > li > a {
    paddingtop: 10px;
    paddingbottom: 10px;
  }
}

4、使用jQuery实现导航切换效果

为了使导航栏在小屏幕设备上更加美观和易用,我们可以使用jQuery来实现导航切换效果,我们需要为每个导航链接添加一个类名,例如dropdown

<ul class="nav navbarnav">
  <li class="active"><a href="#" class="dropdown">首页</a></li>
  <li><a href="#" class="dropdown">关于我们</a></li>
  <li><a href="#" class="dropdown">产品</a></li>
  <li><a href="#" class="dropdown">联系我们</a></li>
</ul>

我们可以使用jQuery的hover方法来实现鼠标悬停时的效果:

$(document).ready(function(){
  $(".dropdown").hover(            // When mouse enters...
    function() { $(this).toggleClass("open"); }, // Add "open" class to submenu links on parent menu item...              
    function() { $(this).removeClass("open"); } // ...and remove it when the mouse leaves.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            // Close one open menu item if the mouse leaves another open menu item                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                // Remove "open" class from all submenu links inside the parent menu item                                                                                                                                                                                                                                                            // Remove the "open" class from any submenu links that are being opened (so they close) when the mouse leaves them                                                                                              });                                                      // Do NOT move code below this line       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^         // This is only needed for the demo, so I've left it here for reference purposes:                  // Open one open menu item when the mouse leaves another open menu item                // Toggle "open" class between submenu links of the parent menu item on "mouseleave" event                                 // Toggle "open" class between submenu links of the parent menu item on "mouseenter" event                           // Add "open" class to parent menu item when its submenu links are clicked (currently only one submenu link can be open at a time)             // Add "open" class to parent menu item when its submenu links are clicked (currently only one submenu link can be open at a time)         // Add "open" class to parent menu items when their submenu links are clicked (currently only one parent menu item can be open at a time)          // Add "open" class to parent menu items when their submenu links are clicked (currently only one parent menu item can be open at a time)           // Add "open" class to parent menu items when their submenu links are clicked (currently only one parent menu item can be open at a time)           // Add "open" class to parent menu items when their submenu links are clicked (currently only one parent menu item can be open at a time)           // Add "open" class to parent menu items when their submenu links are clicked (currently only one parent menu item can be open at a time)           // Add "open" class to parent menu items when their submenu links are clicked (currently only one parent菜单项可以打开一次)          // Add "open"类到父菜单项当它们的子菜单链接被点击时(目前只有一个父菜单项可以打开一次)          // Add "open"类到父菜单项当它们的子菜单链接被点击时(目前只有一个父菜单项可以打开一次)          // Add "open"类到父菜单项当它们的子菜单链接被点击时(目前只有一个父菜单项可以打开一次)          // Add "open"类到父菜单项当它们的子菜单链接被点击时(目前只有一个父菜单项可以打开一次)          // Add "open"类到父菜单项当它们的子菜单链接被点击时(目前只有一个父菜单项可以打开一次)          // Add "open"类到父菜单项当它们的子菜单链接被点击时(目前只有一个父菜单项可以打开一次)          // Add "open"类到父菜单项当它们的子菜单链接被点击时(目前只有一个父菜单项可以打开一次)          // Add "open"类到父菜单项当它们的子菜单链接被点击时(目前只有一个父菜单项可以打开一次)          // Add "open"类到父菜单项当它们的子菜单链接被点击时(目前只有一个父菜单项可以打开一次)          // Add "open"类到父菜单项当它们的子菜单链接被点击时(目前只有一个父菜单项可以打开一次)          // Add "open"类到父菜单项当它们的子菜单链接被点击时(目前只有一个父菜单项可以打开一次)          // Add "open"类到父菜单项当它们的子菜单链接被点击时(目前只有一个父菜单项可以打开一次)          // Add "open"类到父菜单项当它们的子菜单链接被点击时(目前只有一个父菜单项可以打开一次)          // Add "open"类到父菜单项当它们的子菜单链接被点击时(目前只有一个父菜单项可以
0