使用jquery实现HTML5响应式导航菜单教程

使用jQuery实现HTML5响应式导航菜单是一种常见的开发技术,可以方便实现移动设备上的导航功能。下面就这个话题,提供一个详细的攻略。

准备工作

在开始实现之前,我们需要一个HTML5页面模板、一个CSS文件和最新版的jQuery库。可以通过下面的链接下载:

  • HTML5页面模板:https://www.w3schools.com/html/html5_template.asp
  • CSS文件:https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css
  • jQuery库:https://code.jquery.com/jquery-3.6.0.min.js

下载完成后,将它们放在同一个文件夹下,并在HTML文件中引用CSS文件和jQuery库。

创建导航菜单

在HTML中,我们可以使用ul和li标签来创建导航菜单。下面是一个例子:

<nav>
  <ul>
    <li><a href="#">Home</a></li>
    <li><a href="#">Services</a></li>
    <li><a href="#">About</a></li>
    <li><a href="#">Contact</a></li>
  </ul>
</nav>

在CSS文件中,我们可以设置导航菜单的样式,例如设置菜单项的颜色、背景色、间距等。下面是一个例子:

nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  background-color: #333;
  text-align: center;
}

nav li {
  display: inline-block;
  margin-right: 10px;
}

nav a {
  display: block;
  padding: 10px;
  color: #fff;
  text-decoration: none;
}

实现响应式导航菜单

接下来,我们需要使用jQuery为导航菜单添加响应式功能。我们需要在窗口大小改变时检测窗口宽度,如果小于一个特定值,则将导航菜单变成下拉菜单。下面是代码实现:

$(document).ready(function() {
  var $toggleButton = $("<button class='toggle-button'>☰</button>");
  var $nav = $("nav");

  $nav.find("ul").before($toggleButton);

  $toggleButton.click(function() {
    $(this).next().slideToggle();
  });

  $(window).resize(function() {
    if ($(window).width() > 600) {
      $nav.find("ul").show();
    } else {
      $nav.find("ul").hide();
    }
  });
});

以上代码使用jQuery库绑定一个按钮,当点击该按钮时,切换下拉菜单的状态。然后,当窗口大小改变时,动态修改导航菜单的显示状态。

示例一

下面是一个完整的实现示例:

HTML

<!DOCTYPE html>
<html>
<head>
  <title>Responsive Navigation Menu</title>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <link rel="stylesheet" href="style.css">
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script src="script.js"></script>
</head>
<body>
  <header>
    <nav>
      <ul>
        <li><a href="#">Home</a></li>
        <li><a href="#">Services</a></li>
        <li><a href="#">About</a></li>
        <li><a href="#">Contact</a></li>
      </ul>
    </nav>
  </header>
</body>
</html>

CSS

nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  background-color: #333;
  text-align: center;
}

nav li {
  display: inline-block;
  margin-right: 10px;
}

nav a {
  display: block;
  padding: 10px;
  color: #fff;
  text-decoration: none;
}

.toggle-button {
  display: none;
  font-size: 30px;
  border: none;
  background-color: transparent;
  color: #fff;
  padding: 10px;
  cursor: pointer;
}

@media (max-width: 600px) {
  nav ul {
    display: none;
  }

  .toggle-button {
    display: block;
  }
}

JavaScript

$(document).ready(function() {
  var $toggleButton = $("<button class='toggle-button'>☰</button>");
  var $nav = $("nav");

  $nav.find("ul").before($toggleButton);

  $toggleButton.click(function() {
    $(this).next().slideToggle();
  });

  $(window).resize(function() {
    if ($(window).width() > 600) {
      $nav.find("ul").show();
    } else {
      $nav.find("ul").hide();
    }
  });
});

运行这个示例,你会看到导航菜单变成了下拉菜单。

示例二

下面是另一个示例,展示如何在下拉菜单中添加子菜单:

HTML

<!DOCTYPE html>
<html>
<head>
  <title>Responsive Navigation Menu with Submenus</title>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <link rel="stylesheet" href="style.css">
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script src="script.js"></script>
</head>
<body>
  <header>
    <nav>
      <ul>
        <li><a href="#">Home</a></li>
        <li>
          <a href="#">Services</a>
          <ul>
            <li><a href="#">Web Development</a></li>
            <li><a href="#">Mobile Development</a></li>
            <li><a href="#">Desktop Development</a></li>
          </ul>
        </li>
        <li><a href="#">About</a></li>
        <li><a href="#">Contact</a></li>
      </ul>
    </nav>
  </header>
</body>
</html>

CSS

nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  background-color: #333;
  text-align: center;
}

nav li {
  display: inline-block;
  margin-right: 10px;
  position: relative;
}

nav a {
  display: block;
  padding: 10px;
  color: #fff;
  text-decoration: none;
}

nav ul ul {
  position: absolute;
  display: none;
  top: 100%;
  left: 0;
  background-color: #333;
}

nav ul ul li {
  display: block;
}

nav ul ul a {
  padding: 10px;
}

.toggle-button {
  display: none;
  font-size: 30px;
  border: none;
  background-color: transparent;
  color: #fff;
  padding: 10px;
  cursor: pointer;
}

@media (max-width: 600px) {
  nav li {
    display: block;
  }

  nav ul ul {
    position: static;
    display: none;
  }

  nav ul li:hover > ul {
    display: block;
  }

  nav ul li {
    display: block;
    margin-right: 0;
  }

  .toggle-button {
    display: block;
  }
}

JavaScript

$(document).ready(function() {
  var $toggleButton = $("<button class='toggle-button'>☰</button>");
  var $nav = $("nav");

  $nav.find("ul").before($toggleButton);

  $toggleButton.click(function() {
    $(this).next().slideToggle();
  });

  $(window).resize(function() {
    if ($(window).width() > 600) {
      $nav.find("ul").show();
    } else {
      $nav.find("ul").hide();
    }
  });
});

运行这个示例,你会看到当鼠标悬停在Services上时,会出现一个下拉菜单。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用jquery实现HTML5响应式导航菜单教程 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 详解HTML5 Canvas绘制时指定颜色与透明度的方法

    HTML5 Canvas是一个在网页中绘制图形的HTML元素,它提供了非常丰富的绘图功能。在绘制时,我们需要指定绘制的颜色和透明度,这样我们才能达到想要的效果。下面将详细介绍指定颜色与透明度的方法。 指定颜色 在Canvas中,我们可以使用以下方法来指定颜色: fillStyle fillStyle属性用于设置填充颜色,它可以是一个CSS颜色值,也可以是一个…

    css 2023年6月9日
    00
  • 详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)

    Markdown 格式是一种轻量级的标记语言,用起来可以快速简洁地写出漂亮的排版。不过它并不是专门为 web 设计而设计的,而我们在编写网站的时候,所需要的样式效果却远不止于此。其中一条常用的样式效果就是overflow:hidden,下面我将会介绍这个样式效果的作用以及用法。 什么是 overflow:hidden? overflow:hidden是一种 …

    css 2023年6月9日
    00
  • HTML+CSS+JavaScript实现图片3D展览的示例代码

    HTML+CSS+JavaScript实现图片3D展览,其基本思路是通过HTML布局实现图片容器,CSS样式实现3D旋转效果,JavaScript实现交互和事件。下面我们就来一步步讲解实现的具体方法。 第一步:布局HTML 在HTML中创建一个外层容器div,设置宽高以及透视效果,然后在容器中添加一个内层容器ul,设置相应的宽高和位置。在ul中添加li标签作…

    css 2023年6月10日
    00
  • IE浏览器下的CSS问题小结

    IE 浏览器是一个老旧的浏览器,它对 CSS 的支持程度不如现代浏览器。因此,在开发网站时,我们需要注意一些 IE 浏览器下的 CSS 问题。下面是一个完整攻略,包含了如何解决 IE 浏览器下的 CSS 问题的过程和两个示例说明。 IE 浏览器下的 CSS 问题 问题一:盒模型 IE 浏览器中的盒模型与其他浏览器不同。在 IE 浏览器中,盒模型的宽度和高度包…

    css 2023年5月18日
    00
  • CSS中div、span和center元素

    下面我将对“CSS中div、span和center元素”的完整攻略进行详细讲解。 1. div元素 1.1 div元素的作用 div元素是CSS中的块级元素,其作用是用来分组HTML元素,并且可以给分组的元素设置样式和属性。通常情况下,我们会使用div元素来布局网页的各个部分,比如导航栏、主体内容、底部信息等等,同时也可以对这些部分分别设置不同的样式。 1.…

    css 2023年6月9日
    00
  • 用ajax实现预览链接可以看到链接的内容

    要用ajax实现预览链接可以看到链接的内容,需要以下步骤: 1. 给链接加上预览功能的事件处理函数 在HTML页面中,通过给链接加上一个事件处理函数实现预览功能,例如: <a href="https://www.example.com" class="preview-link">预览链接</a>…

    css 2023年6月10日
    00
  • 举例详解CSS中的继承

    下面是详细讲解“举例详解CSS中的继承”的攻略。 什么是CSS继承 CSS继承是指一个元素的某些样式属性,会沿着它在页面DOM结构中的父元素一直向上查找,直到找到该样式属性的值,如果找到了就沿用该值,否则就使用默认值。CSS规定,有一些属性是可以继承的,这些属性都是些如文本、颜色等样式属性,而像框模型大小、定位等与外观无关的属性,这些属性是不会被继承的。 哪…

    css 2023年6月10日
    00
  • Bootstrap基本样式学习笔记之表格(2)

    下面是对“Bootstrap基本样式学习笔记之表格(2)”的详细讲解攻略: 1. Bootstrap表格的基本样式 在使用Bootstrap的表格样式时,我们可以使用一些类来修饰表格的样式,这些类可以用来调整表格的颜色、字体、边框等属性。 下面是一些常用的Bootstrap表格类: 基础样式 table: 默认样式,带有一些基本的样式属性。 带有斑马线的样式…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部